上一页 1 2 3 4 5 6 7 8 9 10 ··· 12 下一页
摘要: 首先,这次换了个算法来写,我用了Melkman问题就来了,不知道怎么的,POJ1113的话,代码上去倒是可以AC。。。但是在HDU的时候自己就o(╯□╰)o。。。到底是怎么疑惑ing。。。。View Code 1 #include <iostream> 2 #include <algorithm> 3 #include <stdio.h> 4 #include <math.h> 5 #include <string.h> 6 using namespace std; 7 const int maxn = 10005; 8 con... 阅读全文
posted @ 2012-10-01 21:06 YORU 阅读(348) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=3030本来想的是DP的算法,但是DP的话明显要超时的。然后文哥告诉我的用树状数组的方法,我一直想怎么用树状数组来表示。。看文哥模拟,然后知道。。。想将数组离散化,然后记录第i个位置为结尾的序列的个数(就是DP的思想了)。。并且每次都要更新以 第 i 个元素为结尾的序列的当前的个数,这里用到了树状数组更新。View Code 1 #include <iostream> 2 #include <algorithm> 3 using namespace std; 4 const int ma 阅读全文
posted @ 2012-10-01 11:19 YORU 阅读(398) 评论(0) 推荐(0)
摘要: http://acm.nyist.net/JudgeOnline/problem.php?pid=78原来Graham都是模板直接上的,这次是自己写的,发现自己尽是细节没搞好View Code 1 #include <iostream> 2 #include <algorithm> 3 using namespace std; 4 const int maxn = 105; 5 struct Point 6 { 7 float x,y; 8 }p[maxn],stack[maxn]; 9 10 double xmult(Point p1,Point p2,Point p 阅读全文
posted @ 2012-09-29 22:55 YORU 阅读(242) 评论(0) 推荐(0)
摘要: 今天照着自己的理解写了Graham.自己写错了很多次,所以先前看到的可能错了。。View Code 1 const int maxn = 105; 2 struct Point 3 { 4 float x,y; 5 }p[maxn],stack[maxn]; 6 7 double xmult(Point p1,Point p2,Point p0) //cross product 8 { 9 return (p1.x-p0.x)*(p2.y-p0.y)-(p1.y-p0.y)*(p2.x-p0.x);10 }11 12 double dis(Point p1,... 阅读全文
posted @ 2012-09-29 21:06 YORU 阅读(174) 评论(0) 推荐(0)
摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3654首先必须说自己今天很2。。。。。一个数据范围搞了那么久,还有就是自己对表达式的理解上也有问题。。。。View Code 1 #include <stdio.h> 2 #include <string.h> 3 #define maxn 2012 4 long long ans; 5 char str[maxn]; 6 7 void cal(char str[]) 8 { 9 int i,j,len,f,mark;10 long long te 阅读全文
posted @ 2012-09-29 19:56 YORU 阅读(297) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1113求凸包....完全上模板的,先过了,然后自己在仔细看看Graham算法View Code 1 #include <stdio.h> 2 #include <iostream> 3 #include <math.h> 4 #include <algorithm> 5 using namespace std; 6 const int maxn =1005; 7 const float pi = 3.14159265; 8 struct Point 9 {10 float x,y;11 }p[ 阅读全文
posted @ 2012-09-27 22:53 YORU 阅读(365) 评论(0) 推荐(0)
摘要: 凸多边形--整个图形在任一条边的一侧凸图形--任意两个内点在任一内分点也在内部凸包--对于一个平面点集或者一个多边形,它的凸包指的是包含它的最小凸图形或最小凸区域凸包的求法 --从最左边的最低点P0开始 --找到一个点P1,使得P0为起点的水平方向的射线到P0P1的角度最小 --然后找下一个P2,使得P2P1到P1P0角度最小。 --。。。。。。 --则P0P1P2....Pm是凸包上的顶点 --实际比较的时候,不一定要用角度来衡量 --可以采用叉乘来判断:只要知道相对的方向(顺时针还是逆时针)就可以 --比如判断AC1和AC2的夹角大小,只要判断AC1在AC2的右边 -... 阅读全文
posted @ 2012-09-27 18:40 YORU 阅读(722) 评论(0) 推荐(0)
摘要: 点与多边形的的位置关系--点在形内 --点在形外--点在边界上判断方法--射线法--转角法射线法--通常取X轴正方向为射线方向--奇数次相交,则在形内--偶数次相交,则在形外对于凹多边形也是可以的射线法的特殊情况--与定点相交 --与其相邻的端点或者线段在射线的异侧,则认为是相交 --否则不认为相交与边部分重合--缩点法:遇到一个在射线上的点,向后梁旭跳过所有也在射线上的点,直到第一个不再射线上的点,在用上述条件。--平移法:将射线稍微上升或下降很小的一个量。 --实际操作时不用真的平移,只需要判断较高的端点高于射线,较低的端点低于射线或恰在射线上... 阅读全文
posted @ 2012-09-27 13:08 YORU 阅读(1898) 评论(0) 推荐(1)
摘要: 非规范相交的集中情况--它们没有被判定为相交是因为它们在叉乘过程中,都至少有一次叉乘为0.--但是叉乘为0并不一定就是非规范相交。因为叉乘结果为0表示是某个点在某向量所在的直线上。如下情况也可能使叉积结果为0,尽管它们并不是规范相交或者规范相交。非规范相交的判定的思路--某个端点P在另外一条线段P1P2所在直线上--且该端点P在线段P1P2上 --即min(P1.x, P2.x) ≤P.x ≤max(P1.x, P2.x)且min(p1.y,p2.y)≤P.y ≤max(p1.y,p2.y)判断顶点在线段上的另外一种方法--可以用点乘判断顶点在线段上的另外一种方法--假设已经知道点P在P1P. 阅读全文
posted @ 2012-09-26 09:33 YORU 阅读(464) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4417这题刚开始的时候没想到,xianbin5说是先标记,再是离线查询。因为他的查询操作和对改动数据的操作是分开的,也就是说可以把查询操作重新排序,按照自己的顺序来查询。那么就可以想按照数据从大到小的顺序查询,当然事先是先把原来的数组存起来进行比较。。。就这样。。。(*´∀`*)View Code 1 #include <iostream> 2 #include <algorithm> 3 #include <string.h> 4 #include <st 阅读全文
posted @ 2012-09-25 23:54 YORU 阅读(351) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 10 ··· 12 下一页