上一页 1 ··· 5 6 7 8 9 10 11 12 13 下一页
摘要: 链接http://acm.hdu.edu.cn/showproblem.php?pid=1269求强连通分支的题,为了搞定2-sat问题,开始找这些题做,而且用的是gabow算法,是为了给自己打模板才做的这道题View Code #include<stdio.h>#include<string.h>#define M 100005#define N 10005int head[N];int t,cnt0,cnt1;int stk1[N],stk2[N];int top1,top2;int time[N],sc[N];struct edge{ int v; int nex 阅读全文
posted @ 2012-05-09 01:41 zhenhai 阅读(220) 评论(0) 推荐(0)
摘要: 链接:http://poj.org/problem?id=2110最近几天一直做二分,感觉有点上手,但是碰见新题还是迷茫,就比如这个,没想起来怎么去用二分枚举答案,看了别人的代码才知道的。唉,还是要多练习啊View Code 1 #include<stdio.h> 2 #include<string.h> 3 #define N 105 4 #define max(a,b) a>b?a:b 5 #define minx(a,b) a<b?a:b 6 int f[N][N]; 7 bool used[N][N]; 8 int dir[4][2]={{0,1}, 阅读全文
posted @ 2012-05-08 20:48 zhenhai 阅读(224) 评论(0) 推荐(0)
摘要: 利用迭代法能获得更好的时间效率View Code 1 #include<stdio.h> 2 #include<math.h> 3 #include<stdlib.h> 4 #define N 1005 5 #define eps 1e-6 6 struct node 7 { 8 double a,b,v; 9 };10 node p[N];11 int n,k;12 int cmp(const void *a,const void *b)13 {14 node c=*(node *)a;15 node d=*(node *)b;16 if(c.v>d 阅读全文
posted @ 2012-05-07 23:19 zhenhai 阅读(221) 评论(0) 推荐(0)
摘要: 链接:http://poj.org/problem?id=297601分数规划,有一个序列ai,和一个序列bi,从中取出下标相等的m个数,使得∑a[i]/∑b[i]最大,刚开始用dp做的,TLE了,看了别人的题解,二分View Code 1 #include<stdio.h> 2 #include<math.h> 3 #include<stdlib.h> 4 #define N 1005 5 #define eps 1e-2 6 double a[N],b[N]; 7 double val[N]; 8 int cmp(const void *a,const 阅读全文
posted @ 2012-05-07 22:56 zhenhai 阅读(147) 评论(0) 推荐(0)
摘要: 链接:http://poj.org/problem?id=3104二分答案,对于进行枚举的答案,如果自然风干的时间比其要短,那就让它自然风干,否则就保证一个物体占用甩干机的时间最短,即为(time[i]-t)/(k-1)View Code 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #define N 100005 5 using namespace std; 6 int time[N]; 7 int n,k; 8 bool check(int t) 9 {10 int i;11 阅读全文
posted @ 2012-05-07 21:30 zhenhai 阅读(340) 评论(0) 推荐(0)
摘要: 链接:http://poj.org/problem?id=3335半平面交求多边形的核,多边形的核是多边形的一个区域,这个区域内的点与整个多边形内的任意一点的连线整个线段都在多边形内部,即对这个区域内的点来说,多边形内的所有点都是可见的。而半平面是说,一个二维空间被一个直线分为了两部分,确定这两部分可以用ax+by+c>=0或者ax+by+c<0来确定。这个是n^2的算法,但是对这道题已经足够了。View Code 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #inc 阅读全文
posted @ 2012-05-07 20:11 zhenhai 阅读(219) 评论(0) 推荐(0)
摘要: 链接:http://acm.hdu.edu.cn/showproblem.php?pid=2222AC自动机,用于这种在一个串中同时查找几个子串的出现个数,这是一道模板题,所以很有保存的价值,具体的ac自动机的匹配原理http://www.cppblog.com/mythit/archive/2009/04/21/80633.htmlView Code 1 #include<stdio.h> 2 #include<string.h> 3 struct node 4 { 5 int cnt; 6 node *next[26],*fail; 7 }*rt,qq[50... 阅读全文
posted @ 2012-05-07 00:09 zhenhai 阅读(182) 评论(0) 推荐(0)
摘要: 链接:http://poj.org/problem?id=1127并查集+线段相交,除了混了一下,没什么难度View Code 1 #include<stdio.h> 2 #include<string.h> 3 #define N 20 4 #define min(x,y) (x<y?x:y) 5 #define max(x,y) (x>y?x:y) 6 int f[N]; 7 int n; 8 struct point 9 {10 int x,y;11 };12 struct segment13 {14 point p1,p2;15 };16 segme 阅读全文
posted @ 2012-05-06 16:49 zhenhai 阅读(185) 评论(0) 推荐(0)
摘要: 链接:http://poj.org/problem?id=1265pick定理,如果一个多边形的每个顶点都在一个坐标系的整数点上,即格子点上,那么其内部包含的点in和边上的点on以及多边形的面积的关系是s=in+on/2-1;还要用到多边形的面积为从原点到两个相邻顶点的向量的叉积的和。以及两个格子点之间的连线上格子点的数目为gcd(abs(x1-x2),abs(y1-y2));View Code 1 #include<stdio.h> 2 #define M 105 3 int x[M],y[M]; 4 int gcd(int a,int b) 5 { 6 if(!a) 7 ... 阅读全文
posted @ 2012-05-05 15:54 zhenhai 阅读(185) 评论(0) 推荐(0)
摘要: 链接:http://poj.org/problem?id=1039这题的题意是一个通光的管道,假设这种材质不反射光,求从入口任意方向进入的光所能达到的最大的横坐标大小,如果有光能够完全通过管道则输出Through all the pipe.否则输出最大的横坐标值,可以证明的是,最长距离的光一定是经过某两个顶点的,假设有有一条光线不经过顶点,那么通过平移,旋转到顶点上之后所能得到的值一定比原来的要大,所以可以枚举每两个顶点的直线,从左到右依次判断是否在拐点的内部,如果不在说明和前一个拐点所购成了两个线段之间有一条是相交的,那么交点就是最大值View Code 1 #include<iost 阅读全文
posted @ 2012-05-05 14:58 zhenhai 阅读(345) 评论(0) 推荐(0)
上一页 1 ··· 5 6 7 8 9 10 11 12 13 下一页