还是跟那题poj 1379 run away一样的做法http://www.cnblogs.com/wuyiqi/archive/2011/12/08/2280885.html改一下最优的方法(到n个点的距离之和)就好了View Code //求n边形的费马点//即找到一个点使得这个点到n个点的距离之和最小#include<stdio.h>#include<math.h>#include<stdlib.h>#include<time.h>const double inf = 1e10;const double pi = acos(-1.0);co Read More
posted @ 2011-12-08 16:55 Because Of You Views(1417) Comments(0) Diggs(0) Edit
两个题目一个是求一个点,使得该点到n个点的最大距离的最小值另一个是求一个点,使得该点到n个点的最小距离的最大值好像也不是什么模拟退火的做法,只是一种利用随机函数的做法,遍历一下整个区域找到最优解poj 1379View Code //在某个区域内到某个点集的最小距离最大//随机算法解决//dis[i]表示点i到点集中最小距离的最大值#include<stdio.h>#include<math.h>#include<stdlib.h>#include<time.h>const double inf = 1e10;const double pi = Read More
posted @ 2011-12-08 15:42 Because Of You Views(1136) Comments(0) Diggs(0) Edit
找出一个点使得这个店到n个点的最长距离最短,即求最小覆盖圆的半径用一个点往各个方向扩展,如果结果更优,则继续以当前步长扩展,否则缩小步长View Code #include<stdio.h>#include<math.h>#include<string.h>const double pi = acos(-1.0);struct point { double x,y;}p[1010];int n;point mid,tmid;double R,xmin,ymin,xmax,ymax;double ans,tans;double dis(point a, poi Read More
posted @ 2011-12-08 11:36 Because Of You Views(1177) Comments(0) Diggs(0) Edit