ACM-计算几何
文章平均质量分 66
wsniyufang
这个作者很懒,什么都没留下…
展开
-
poj 3285 模拟退火,
参考:http://boatswain.info/lovers/wordpress/?p=124 本题给出了三个圆形,求一点,使得该点到三个圆的视角相同。 不存在,则输出没有解决方案。 本题的难点是用模拟退火的时候,如何逼近最优解。也就是说,如何使得原创 2011-08-21 21:51:33 · 1395 阅读 · 0 评论 -
poj 3850 Simple Polygon
/* 题意:给定一些点,求一个点的序列,按照这个序列连接点(首尾也相连)使得形成一个多边形(既任意连线和其他线不想交) 直接极角排序就好了,注意共线的情况,除了在起始位置距离极点小的在前,其他位置距离极点远的在前 */ #include #include #include #include const int MAXN = 2009; const double eps原创 2011-10-28 23:19:43 · 1116 阅读 · 0 评论 -
HDU 3756 Dome of Circus 三分
/* 底面为xy平面和轴为z轴的圆锥,给定一些点,使得圆锥覆盖所有点并且体积最小 点都可以投射到xz平面,问题转换为确定一条直线(交x,z与正半轴)使得与x的截距r 和与z轴的截距h满足h*r*r最小。 三分,对于确定的h可以找到最佳的r,并且h*r*r的曲线必定只有一个极小值 */ struct po { double x,y; }p[10005]; const double eps=1原创 2011-10-27 11:02:59 · 1838 阅读 · 0 评论 -
集训队例赛——20110925 解题报告
//注释不是很多,读懂代码需要耐心。。。。。。读不懂可以在下面留言,我尽量回复。 //希望大家都写赛后总结——写在自己人人或者空间博客内,没写出1002和1004的应该反思一下最近的状态了。。。 /* 1001 开始用dfs递归,爆栈了 后来模拟又因为 出迷宫的条件一直wa,细原创 2011-09-25 22:30:16 · 1271 阅读 · 0 评论 -
POJ 2420 A Star not a Tree? 费马点,模拟退火
/* 参考:http://blog.sina.com.cn/s/blog_64675f540100sehz.html 题意:给定n个点,找到一个点,使得n个点到这个点的和值最小 模拟退火法 模拟退火的过程 1 找到这些点所在的范围,用两个点框定(代码中e1,e2两个点) 2 在这原创 2011-08-21 18:24:19 · 1416 阅读 · 0 评论 -
poj 1379 模拟退火
/* 题意:给定n个点和范围,在范围内找到一个点,使得n个点到这个点的最小距离最大 模拟退火法 模拟退火的过程 1 找到这些点所在的范围,用两个点框定(代码中e1,e2两个点) 2 在这个范围内生成NUM个点(NUM自定) 3 对于每个生成的点i,在其周围生成NUM个点,一旦有原创 2011-08-21 19:17:47 · 1928 阅读 · 0 评论 -
hdu 3847 Trash Removal 2011WorldFinal 凸包
/* 求出多边形最窄的地段长度 枚举边,求出所有点中到边的距离最大的值 这些值中最小的就是答案 */ #include #include #include #include const int MAXN = 109; const double eps = 1e-4; st原创 2011-08-21 00:10:17 · 1029 阅读 · 0 评论 -
二维凸包模版——旋转卡壳法
#include #include #include #include const int MAXN = 109; const double eps = 1e-6; struct point{ double x,y; }p[MAXN],h[MAXN]; inli原创 2011-07-18 16:53:42 · 926 阅读 · 0 评论 -
HDU 2671 Can't be easier 求点关于直线的对称点
/* 显然,如果A,B在直线的同一侧,则min(PA+PB)=dis(A,B), 否则,求出B关于直线的对称点B`,min(PA+PB)=dis(A,B`) */ #include #include #include using namespace std; int main()原创 2011-08-15 00:54:12 · 977 阅读 · 0 评论 -
HDU 3902 Swordsman 2011 Multi-University Training Contest 7 - Host by ECNU 计算几何
/* 判断给定的多边形是不是轴对称图形 因为对称轴仅可能经过顶点或者边的终点 只需要枚举这些点能在o(n^2)的复杂度内解决 */ #include #include #include using namespace std; #define原创 2011-08-04 00:50:56 · 1041 阅读 · 0 评论 -
Codeforces 166B - Polygons
/*判断一个多边形是否严格在一个凸包内(这个凸包上不存在共线的三点) 把凸包上的点和多边形上的点一起做一次凸包是生成,判断生成的凸包和原来的是否是一个凸包就ok了 注意的细节比较多 */ #include #include #include #include #include #include #include #include #include const int MAXN = 20000原创 2012-04-24 17:21:45 · 2381 阅读 · 0 评论