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 · 1273 阅读 · 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#includeusing 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#includeconst int MAXN = 20000原创 2012-04-24 17:21:45 · 2381 阅读 · 0 评论