摘要:
2164 -- Find the Border 卡了一个月啊,都快想放弃了。今天看了一下LRJ的PSLG版的代码,才想起来我的模拟捆包裹法存在的漏洞。那就是对点的坐标进行排序的时候,应该用的sgn()函数来进行比较,而不是我一开始的直接对浮点数进行比较。如果直接对浮点数进行比较,本来距离差不多的点就会被拉伸开来,导致应该是相邻点的点被分隔了。 做法比较简单,我的捆包裹法是先将所有的交点离散出来,然后处理出所有的相邻的点。最后,就是模拟向顺时针转动最多的方向的相邻点移动的所有过程。代码如下: 1 #include <cstdio> 2 #include <cstring> 阅读全文
摘要:
Jan's LightOJ :: Problem 1203 - Guarding Bananas 简单凸包。处理凸包的时候吧ch写成了pt,wa了两次。 1 #include <cstdio> 2 #include <iostream> 3 #include <algorithm> 4 #include <cstring> 5 #include <cmath> 6 7 using namespace std; 8 9 struct Point {10 double x, y;11 Point() {}12 Point(doub 阅读全文
摘要:
Jan's LightOJ :: Problem 1239 - Convex Fence 简单凸包,练手题。 1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 #include <algorithm> 5 #include <cmath> 6 #include <iostream> 7 8 using namespace std; 9 10 typedef long long LL;11 12 struct Point {13 LL x 阅读全文
摘要:
Problem - 1140 简单的三维几何题,对于每一个点,搜索是否存在卫星直接可见,也就是直线与球体是否交于较近的点。其中,套用的主要是直线与平面交点的函数。模板以及代码: 1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 #include <set> 5 #include <vector> 6 #include <iostream> 7 #include <algorithm> 8 9 using namespace std; 10 阅读全文