hdu 1077 意思懂,没思路,借用大牛的思想

来源:互联网 发布:淘宝卖家返钱 编辑:程序博客网 时间:2024/04/29 14:45

大牛的这么认为,给定两个点,如里它们的距离大于直径,不必考虑,否则,认为这两个点在某一圆上,计算出圆心坐标,依次遍历顶点,记录在这个圆里面的点,这个值就是我们要进行判定的值。。。


#include <iostream>#include <cmath>#include <cstdio>using namespace std;const static double  eps = 1e-6;struct Point{double x,y;};double distancess(Point a,Point b){return (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);}Point look_center(Point a,Point b){Point aa,bb,mid;aa.x = b.x-a.x;aa.y = b.y-a.y;mid.x = (a.x+b.x)/2.0;mid.y = (a.y+b.y)/2.0;double dist = distancess(a,mid);double c = sqrt(1.0-dist);if(fabs(aa.y)<eps){bb.x = mid.x;bb.y = mid.y+c;}else{double ang = atan(-aa.x/aa.y);bb.x = mid.x + c*cos(ang);bb.y = mid.y + c*sin(ang);}return bb;}int main(){int test;Point p[305],a,b,c;int n;scanf("%d",&test);while(test--){scanf("%d",&n);for(int i=0; i<n;i++)scanf("%lf%lf",&p[i].x,&p[i].y);int ans = 1;int temp = 0;for(int i=0; i<n; i++)for(int j=i+1;j<n;j++){   if(distancess(p[i],p[j])>4) continue;a = look_center(p[i],p[j]);temp = 0;for(int k=0;k<n;k++){if(distancess(a,p[k])<=1.000001) temp++;}if(ans<temp) ans = temp;}printf("%d\n",ans);}return 0;}


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 发票抬头名称写错了怎么办 滴滴发票抬头写错了怎么办 普票抬头开错了怎么办 发票号码打错了怎么办 个人税票开错了怎么办 普票地址错了怎么办 专票税率开高了怎么办 专票税率开错了怎么办 发票姓名写错了怎么办 首付发票姓名写错怎么办 一般纳税人税率开错了怎么办 电子税票开错了怎么办 税率是6%开成3%怎么办 医院收费收错了怎么办 发票少打一个字怎么办 增值税发票抬头错了一个字怎么办 暂估入账跨年了怎么办 电子发票写错了怎么办 发票纳税人识别号写错了怎么办 电子发票忘填邮箱怎么办 公司名跟发票抬头不一样怎么办 买空调不给发票怎么办 卖苹果手机没有发票怎么办 刷机字库刷坏了怎么办 维棠不能播放视频怎么办 m3u8卡顿的厉害怎么办 下载了PDF不能用怎么办 pdf格式在电脑打不开怎么办 电脑上arm格式打不开怎么办 极米桌面无响应怎么办 jpg格式的文件打印模糊怎么办 苹果迅雷mp4格式看不了怎么办 太阳镜镜片磨花了怎么办 ∪盘插上电脑读不出怎么办 网站被路由器屏蔽了怎么办 电脑无法进入路由器设置页面怎么办 笔记本电脑无线网卡坏了怎么办 笔记本内置无线网卡坏了怎么办 笔记本无线网卡坏了怎么办 wif连上不能上网怎么办 手机wifi有个感叹号怎么办