![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
poj
努力的乌龟
水货一个
展开
-
poj 3468
A Simple Problem with IntegersTime Limit: 5000MS Memory Limit: 131072KTotal Submissions: 70414 Accepted: 21714Case Time Limit: 2000MSDescriptionYou have N i原创 2015-04-14 00:03:10 · 341 阅读 · 0 评论 -
poj 1463
树形dp 题意:给你一颗树,在树的节点上面放上士兵,那么就可以覆盖与这个点相连的所有边,问使用最小的点覆盖所有的边。 dp[i][0] += dp[child][1]; dp[i][1] += min(dp[child][1],dp[child][0]);注意:dp[i][1] + 1,表示对i这个点放一个士兵。 叶子节点dp[i][0] = 0; dp[i][1] = 1;#include原创 2015-07-15 21:18:56 · 293 阅读 · 0 评论 -
poj 2342
第一把树形dp , 不懂树形dp,百度学习,这是树形dp入门,对着别人的代码打的,然后懂了。 题意:有一个公司的人要去参加party,每个人有一个愉悦值。每个人和他的直接上司不能同时出现。要求邀请一定量的人使得愉悦值最大。树形dp,对于第i个人,有两种选择,选或不选。dp[i][0] , dp[i][1];推出dp方程dp[i][0] += max(dp[st][1],dp[st][0]) st原创 2015-07-15 16:51:25 · 405 阅读 · 0 评论 -
poj 3304
浮点数真的是日了狗了,我操, 题意:给出n个线段,求是否有一条直线,使得这n个线段在这条直线上的投影 有一个公共点。其实就是问有没有一条直线可以穿过所有的线段,该直线的垂线就是 n个线段的投影线。 TMD沙比的不行啊,浮点数判0 ,要用fabs < eps; `#include <iostream>#include <cstdio>#include <cstring>#include <原创 2015-07-17 11:39:53 · 254 阅读 · 0 评论 -
poj 2653
求线段交的模板题 vector erase 这个有点神奇。与set不一样。set.erase( i) ,表示删除i,vector erase(vector.begin()+i)删除第i个位置的元素。#include <iostream>#include <cstdio>#include <vector>using namespace std;struct Seg{ double原创 2015-07-17 17:08:38 · 360 阅读 · 0 评论 -
poj 1066
线段相交的问题; 关键是理解穿过最少的门,就是通过最少的线段,多个线段的交点,算作多个门,边界也需要门。所以n == 0的时候 == 1; 题意没看,有点晕;#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <vector>using namespace std;#defin原创 2015-07-18 12:07:09 · 315 阅读 · 0 评论 -
poj 1556
几何加floyd 水题一个。浮点数还是看脸。 题意:在10*10的矩形中,给出一些线段,线段分割矩形,求(0,5)到(10,5)的最小距离。数据很小直接暴力。#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>#include <algorithm>using n原创 2015-07-17 16:09:42 · 313 阅读 · 0 评论 -
poj 1274
裸的二分图,但我还是WA了,注意这是两个分开的集合n,m;#include <iostream>#include <cstdio>#include <cstring>using namespace std;int n,m;int link[600]={};bool data[600][600]={};bool visit[600]={};bool dfs(int x) { **原创 2015-07-20 10:32:47 · 500 阅读 · 0 评论 -
poj 2446
二分图 写的日了狗了,不能玩了,一开始就搓了。二分图,一定是把点分为两部分,放在一起很难搞。这题用奇偶构图 】#include <iostream>#include <cstdio>#include <cstring>#include <cmath>using namespace std;#define N 1100int n,m,k,tmp1,tmp2;int map[N][N],l转载 2015-07-20 14:19:44 · 531 阅读 · 0 评论 -
poj 3140
艹 坑爹啊,居然是 abs函数的问题,整数的abs 居然有问题。。 题意中的m的范围也是个坑,完全可以忽略。 题意: 把一个树分成两部分,是的他们的差值最小(叶子节点有值)。 类似树形dp,其实就是个dfs,用vector优化,不然会tle的。#include <cstdio>#include <iostream>#include <cstring>#include <vector原创 2015-07-15 20:28:42 · 299 阅读 · 0 评论 -
poj 1018
题意:某公司要建立一套通信系统,该通信系统需要n种设备,而每种设备分别可以有m1、m2、m3、...、mn个厂家提供生产,而每个厂家生产的同种设备都会存在两个方面的差别:带宽bandwidths 和 价格prices。现在每种设备都各需要1个,考虑到性价比问题,要求所挑选出来的n件设备,要使得B/P最大。其中B为这n件设备的带宽的最小值,P为这n件设备的总价。原创 2015-07-05 11:01:11 · 324 阅读 · 0 评论 -
poj1934
题目大意:给出两个串求最长的公共子序列。最长公共子序列好求,难得是输出。暴力dfs。n*n!跪了,主要是两个串如果大量的字符相同,dfs次数太多,TLE是必然的。显然必须换姿势了。各位大牛给的是枚举26个字母。#include #include #include #include using namespace std;#define ma 100int d原创 2015-04-29 20:26:40 · 497 阅读 · 0 评论 -
poj1609
数据很弱,sort之后直接暴力,这是一个最长上升子序列的题目。由于长度只有100,所以可以dp100*100,或者用sort之后用n*logn (n = 10000) 解决。显然dp100*100 速度最快。暴力求最长上升子序列。#include #include #include #include #include #include using namespace原创 2015-04-27 19:09:06 · 433 阅读 · 0 评论 -
poj2127
http://blog.csdn.net/geniusluzh/article/details/8393561自己搞得一开始就是错的!这道题目就是求两个序列的最长公共上升子序列,序列的长度不超过500,那么我们使用O(N^3)复杂度的算法也能过。 我们假设数组A和B分别为这两个序列,我们定义状态dp[i][j]表示以A[i]和B[j]结尾的并且LCIS的转载 2015-05-04 13:51:16 · 314 阅读 · 0 评论 -
poj1753
题目描述简单!,以前用dfs写的,写的很挫!WA了不知道多少次!,想想,只有16个格子,每个格子有2中状态,所以枚举。用1——2^16次方枚举!用数字的位数来改变原图!#include #include #include using namespace std;bool map[5][5]={};int biao[5][5]={};bool data[5][5]原创 2015-05-04 20:13:40 · 317 阅读 · 0 评论 -
poj 2187
求最远点对的距离。典型的旋转卡壳。卡了好久一直WA,直接凸包,暴力枚举,300ms。水题啊。旋转卡壳果然不是一般的卡。原来旋转卡壳写错了。!!!!!!!!果然第一次啊!!!!!处女作!#include #include #include #include #include using namespace std;struct point {原创 2015-05-20 17:09:27 · 263 阅读 · 0 评论 -
poj 1269
计算几何 题意还是比较好理解的,就是给出四个点p1,p2,p3,p4. 表示两条直线,求直线重合,相交,平行。对着书写的。确实很好些,poj浮点数一定要用c++,g++poj不靠谱。 计算几何的叉积判断很好用。#include #include #include #include #include #include #include #include u原创 2015-05-18 13:41:39 · 268 阅读 · 0 评论 -
poj 2398
计算几何水题一道,没有刻意的去卡时间和内存。可以用二分做查找优化,由于数据范围太小。所以暴力还是查找还是很快的。注意给出的数据不是有序的,需要排序。#include #include #include #include using namespace std;struct point {double x1,y1,x2,y2;int sum;}原创 2015-05-18 15:10:09 · 298 阅读 · 0 评论 -
poj 3348
赤裸裸的凸包!百度的模板,学习graham求凸包!#include #include #include #include using namespace std;struct point {double x,y;};point data[10008]={};int n,top,res[10008]={};bool cmp(point a,原创 2015-05-18 20:12:12 · 370 阅读 · 0 评论 -
poj 1724
用dij实现 最短路限制下的bfs 比较难理解#include <iostream>#include <cstdio>#include <cstring> #include <cmath>#include <queue>using namespace std;#define inf 0x3f3f3f3fstruct state{ int n,d,c; // n 当前点,d 距离原创 2015-07-22 11:03:58 · 484 阅读 · 0 评论