2017 CCPC 哈尔滨站 --M --- Geometry Problem
2017-12-01 19:23
127 查看
https://www.nowcoder.com/acm/contest/19/M
题意就是: 二维平面上,给你n个点,问是否有一个有一个点p,使得至少有 (n+1)/2向下取整个点他们与p点的距离为R。
思路: 采用随机化算法,算计3个点确定一个圆,那么我们遍历所有的点,看是否满足条件。只要不是非酋随机化之后确定一下精度就可以了。
题意就是: 二维平面上,给你n个点,问是否有一个有一个点p,使得至少有 (n+1)/2向下取整个点他们与p点的距离为R。
思路: 采用随机化算法,算计3个点确定一个圆,那么我们遍历所有的点,看是否满足条件。只要不是非酋随机化之后确定一下精度就可以了。
#include <bits/stdc++.h> #define maxs 2202002 #define ll long long int #define mme(i,j) memset(i,j,sizeof(i)) using namespace std; struct Point { double x,y; Point(double _x,double _y){ x=_x; y=_y; } Point(){} }o[maxs]; Point waixin(Point a,Point b,Point c) { double a1=b.x-a.x,b1=b.y-a.y,c1=(a1*a1+b1*b1)/2; double a2=c.x-a.x,b2=c.y-a.y,c2=(a2*a2+b2*b2)/2; double d=a1*b2-a2*b1; return Point(a.x+(c1*b2-c2*b1)/d,a.y+(a1*c2-a2*c1)/d); } double distant(Point a,Point b){ return sqrt( (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y) ); } void Solve(int n) { int a,b,c,k; while(1) { k=0; a = rand()%n,b=rand()%n,c=rand()%n; Point cc = waixin(o[a],o[b],o[c]); double dis = distant(cc,o[a]); if(fabs(cc.x)>1e9||fabs(cc.y)>1e9||fabs(dis)>1e9) continue; for(int i=0;i<n;i++){ double tmp = distant(o[i],cc); if( fabs(tmp-dis)<=1e-6 ) k++; if(k==(n+1)/2){ printf("%.10lf %.10lf %.10lf\n",cc.x,cc.y,dis); break; } } if(k==(n+1)/2) break; } } int main() { int t,n; scanf("%d",&t); while(t--){ scanf("%d",&n); for(int i=0;i<n;i++) scanf("%lf%lf",&o[i].x,&o[i].y); if(n<5){ if(n==1){ printf("%.10lf %.10lf %.10lf\n",o[0].x+1,o[0].y,1.0); }else{ printf("%.10lf %.10lf %.10lf\n",(o[0].x+o[1].x)/2,(o[0].y+o[1].y)/2,distant(o[1],o[0])/2); } }else{ Solve(n); } } return 0; }
相关文章推荐
- 2017 CCPC 哈尔滨站 HDU 6242
- CCPC 2017 哈尔滨赛区现场赛 比赛总结
- 2017 秦皇岛CCPC M题 Safest Buildings(概率+思维+计算几何)
- 2017 ccpc 网络赛 Friend-Graph
- A Secret 2017 CCPC 网络选拔赛 hdu 6153
- HDU6237-A Simple Stone Game-找素因子(欧拉函数)-2017中国大学生程序设计竞赛-哈尔滨站-重现赛
- 2017 CCPC Qinhuangdao Site
- 2017 ccpc哈尔滨 A题 Palindrome
- 2017 CCPC Final B Wash
- 2017 ccpc秦皇岛站总结
- 2017 CCPC 秦皇岛 A:Balloon Robot
- 2017 CCPC西安总结
- 2017 CCPC-WFinal&&HDOJ 6024 Building Shops
- hdu6152 Friend-Graph (2017 ccpc 网络赛 (暴力 + 一个神奇的定理)
- 2017 CCPC- 杭州站总结!
- 2017 CCPC - Online
- CCPC 2016-2017, Finals (慢慢做,慢慢更新)
- 2017 ccpc 秦皇岛站 B题 Expected Waiting Time (zoj3982)
- 2017 CCPC 秦皇岛站
- 2017 CCPC秦皇岛 B