POJ 2420 A Star not a Tree?(二维费马点)
来源:互联网 发布:php制作99乘法表 编辑:程序博客网 时间:2024/06/06 02:39
转载请注明出处,谢谢http://blog.csdn.net/acm_cxlove/article/details/7854526 by---cxlove
题目:就是求多边形的费马点,输出最小的距离。
http://poj.org/problem?id=2420
做法:随机化变步长贪心法(模拟退火???)
首先随机选出一点,我直接取了0,0
然后选定一个步长,往4个方向开始找,如果更优则继续,否则降低步长,直到满足题目要求精度
也可以8个方向等等
#include<iostream>#include<fstream>#include<iomanip>#include<cstdio>#include<cstring>#include<algorithm>#include<cstdlib>#include<cmath>#include<set>#include<map>#include<queue>#include<stack>#include<string>#include<vector>#include<sstream>#include<cassert>#define LL long long#define eps 1e-6#define inf 1ll<<50#define zero(a) fabs(a)<eps#define N 20005using namespace std;struct Point{ double x,y;}p[105],cur,pre;int n;int way[4][2]={0,1,0,-1,1,0,-1,0};double dist(Point p1,Point p2){ return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));}double get_dist(Point cen){ double sum=0; for(int i=0;i<n;i++) sum+=dist(cen,p[i]); return sum;}int main(){ while(scanf("%d",&n)!=EOF){ for(int i=0;i<n;i++) scanf("%lf%lf",&p[i].x,&p[i].y); pre.x=0;pre.y=0; double step=100,best=get_dist(pre); while(step>0.2){ bool ok=true; while(ok){ ok=false; for(int i=0;i<4;i++){ cur.x=way[i][0]*step+pre.x; cur.y=way[i][1]*step+pre.y; double dis=get_dist(cur); if(dis<best){best=dis;pre=cur;ok=true;} } } step/=2.0; } printf("%d\n",(int)(best+0.5)*100/100); } return 0;}
- POJ 2420 A Star not a Tree?(二维费马点)
- POJ 2420 A Star not a Tree?
- poj 2420 A Star not a Tree?
- poj 2420 A Star not a Tree?
- POJ 2420 A Star not a Tree?
- 【POJ 2420】A Star not a Tree?
- POJ 2420 A Star not a Tree?
- POJ 2420 A Star not a Tree?
- poj 2420 A Star not a Tree?
- poj 2420 A Star not a Tree?
- poj 2420 A Star not a Tree?
- poj 2420 A Star not a Tree?
- POJ 2420:A Star not a Tree?
- POJ 2420 A Star not a Tree?
- 【POJ 2420】A Star not a Tree?
- POJ 2420 A Star not a Tree? 费马点,模拟退火
- poj 2420 A Star not a Tree?(模拟退火)
- poj 2420 A Star not a Tree?(模拟退火)
- tracker-P2P服务器架设
- 做cms遇到的问题
- 字节转换
- SGU345 Revolution & Hdu 3684 Gunshots
- Python StringIO与cStringIO
- POJ 2420 A Star not a Tree?(二维费马点)
- Xms Xmx PermSize MaxPermSize 区别
- 什么是句柄?为什么会有句柄?HANDLE
- 通过句柄,获取窗口的指针
- 汉字编码问题
- oracle的sga和pga
- 无参数装饰器和有参数装饰器
- Android_应用程序签名
- 旋转数组的最小元素