poj 2420 A Star not a Tree?
2016-02-18 20:01
323 查看
简单三分。。先确定x,由x再寻找y,由y来选择x。。
再来一个暴力的做法
前一个16ms 后一个120+。。
[code]#include<stdio.h> #include<math.h> struct sb { double x; double y; }node[110]; int n; double judgex(double x) { double lefty=-0x3f3f3f3f; double righty=0x3f3f3f3f; double mid1; double mid2; double ans1; double ans2; int i; while(righty-lefty>1) { mid1=(righty-lefty)/3+lefty; mid2=righty-(righty-lefty)/3; ans1=0; ans2=0; for(i=1;i<=n;i++) { ans1=ans1+sqrt((node[i].x-x)*(node[i].x-x)+(node[i].y-mid1)*(node[i].y-mid1)); ans2=ans2+sqrt((node[i].x-x)*(node[i].x-x)+(node[i].y-mid2)*(node[i].y-mid2)); } if(ans2>ans1) righty=mid2; else lefty=mid1; } return ans1; } int main() { scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%lf%lf",&node[i].x,&node[i].y); double leftx=-0x3f3f3f3f; double rightx=0x3f3f3f3f; double mid1; double mid2; double test1; double test2; while(rightx-leftx>1) { mid1=(rightx-leftx)/3+leftx; mid2=rightx-(rightx-leftx)/3; test1=judgex(mid1); test2=judgex(mid2); if(test1>test2) leftx=mid1; else rightx=mid2; } printf("%.0lf\n",test1); return 0; }
再来一个暴力的做法
[code]#include<stdio.h> #include<math.h> struct sb { double x; double y; }node[110]; int n; double judgex(double x) { double lefty=-0x3f3f3f3f; double righty=0x3f3f3f3f; double mid1; double mid2; double ans1; double ans2; int i; int z=150; while(z--) { mid1=(righty-lefty)/3+lefty; mid2=righty-(righty-lefty)/3; ans1=0; ans2=0; for(i=1;i<=n;i++) { ans1=ans1+sqrt((node[i].x-x)*(node[i].x-x)+(node[i].y-mid1)*(node[i].y-mid1)); ans2=ans2+sqrt((node[i].x-x)*(node[i].x-x)+(node[i].y-mid2)*(node[i].y-mid2)); } if(ans2>ans1) righty=mid2; else lefty=mid1; } return ans1; } int main() { scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%lf%lf",&node[i].x,&node[i].y); double leftx=-0x3f3f3f3f; double rightx=0x3f3f3f3f; double mid1; double mid2; double test1; double test2; int z=150; while(z--) { mid1=(rightx-leftx)/3+leftx; mid2=rightx-(rightx-leftx)/3; test1=judgex(mid1); test2=judgex(mid2); if(test1>test2) leftx=mid1; else rightx=mid2; } printf("%.0lf\n",test1); return 0; }
前一个16ms 后一个120+。。
相关文章推荐
- Bootstrap复习三——CSS组件1
- mysql读书笔记一
- 《Linxu优化之selinux详解以及运行级别详解》
- 理解C语言——从小菜到大神的晋级之路(9)——多维数组
- 起始篇:勇敢做自己,永远都不迟!
- ACM数论之旅6---数论倒数,又称逆元(我整个人都倒了( ̄﹏ ̄))
- java浮点数出现误差问题
- 谈谈对单例的理解
- C 和 C++ 的矩阵库
- 体育场
- 【Android高级】锁屏功能简单实现
- org.hibernate.QueryException: query must begin with SELECT or FROM: delete
- VMWare vCenter Converter 迁移错误Unexpected Exception
- 条款4:确定对象被使用前已先被初始化
- ASTQueryTranslatorFactory weblogic10.3 org.hibernate.hql.ast.HqlToken报错问题
- 【Android进阶】Android面试题目整理与讲解
- Trie树的c++实现
- java_74_自定义异常
- VMWare vCenter Converter 转换失败 Error code: 2147754776 (0x80042318).
- PHP---文件上传下载