博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
三分 POJ 2420 A Star not a Tree?
阅读量:6457 次
发布时间:2019-06-23

本文共 1431 字,大约阅读时间需要 4 分钟。

 

1 /* 2     题意:求费马点 3     三分:对x轴和y轴求极值,使到每个点的距离和最小 4 */ 5 #include 
6 #include
7 #include
8 #include
9 10 const int MAXN = 1e2 + 10;11 const int INF = 0x3f3f3f3f;12 double x[MAXN], y[MAXN];13 int n;14 15 double sum(double x1, double y1) {16 double res = 0;17 for (int i=1; i<=n; ++i) {18 res += sqrt ((x1 - x[i]) * (x1 - x[i]) + (y1 - y[i]) * (y1 - y[i]));19 }20 return res;21 }22 23 double cal(double x1) {24 int l = 0.0, r = 10000.0;25 for (int i=1; i<=100; ++i) {26 double lmid = (l + r) / 2;27 double rmid = (lmid + r) / 2;28 if (sum (x1, lmid) < sum (x1, rmid)) r = rmid;29 else l = lmid;30 }31 return sum (x1, l);32 }33 34 int main(void) { //POJ 2420 A Star not a Tree?35 //freopen ("POJ_2420.in", "r", stdin);36 37 while (scanf ("%d", &n) == 1) {38 for (int i=1; i<=n; ++i) {39 scanf ("%lf%lf", &x[i], &y[i]);40 }41 42 double l = 0.0, r = 10000.0;43 for (int i=1; i<=100; ++i) {44 double lmid = (l + r) / 2;45 double rmid = (lmid + r) / 2;46 if (cal (lmid) < cal (rmid)) r = rmid;47 else l = lmid;48 }49 printf ("%.0f\n", cal (l));50 }51 52 return 0;53 }

 

转载于:https://www.cnblogs.com/Running-Time/p/4676382.html

你可能感兴趣的文章
NSURL
查看>>
解决windows写Django项目在templates中的html文件中引入外部css,js不成功的方法
查看>>
FUCKED-BUG之python子进程的键盘中断
查看>>
Spring事务管理实现方式之编程式事务与声明式事务详解
查看>>
C语言基础知识(期末喽)
查看>>
动态rem与1px边框问题的理解
查看>>
Cap01_信息化和信息系统
查看>>
编程基础
查看>>
存储过程优点
查看>>
StringUtils中 isNotEmpty 和isNotBlank的区别
查看>>
submit()阻止提交
查看>>
模糊的概念(四)
查看>>
bzoj 4501 旅行
查看>>
python3 重写、重用、重载
查看>>
u盘安装ubuntu server 14.04 以及No CD-ROM drive was detected 错误
查看>>
$provide.decorator
查看>>
ASP.NET 表单认证与角色授权
查看>>
P2463 [SDOI2008]Sandy的卡片
查看>>
mfc配置GDI+有106个错误
查看>>
笨办法学R编程(4)
查看>>