思路:

  1.枚举两点确定圆心,大于2不用考虑

  2.逐个判断判断距圆心的距离小于1.00001符合题意

这个题,主要在求圆心上废了不少功夫,但是仍存在问题

#include<iostream>
#include<cmath>
#include<vector>
#include<cstdio>
;
using namespace std;
struct point{
    double x,y;
    point():x(),y(){};
};
double getDistance(point,point);
point getCentral(point,point);
int main()
{
    int t;
    cin>>t;
    while(t--){
        vector<point> vec;
        int n;cin>>n;
        ;i<n;++i){
            point temp;
            cin>>temp.x>>temp.y;
            vec.push_back(temp);
        }
        ;//捕鱼数
        auto it=vec.begin();
        ;i<vec.size()-;++i,++it){
            auto iter=it;
            for(++iter;iter!=vec.end();++iter){
                point cen;//圆心
                if(getDistance((*it),(*iter)) >2.0)continue;
                cen = getCentral((*it),(*iter));
                ;
                for(auto p=vec.begin();p!=vec.end();++p){
                    if(getDistance(cen,(*p)) <= 1.0001)k++;
                }
                if(cut < k)cut=k;
            }
        }
        cout<<cut<<endl;
    }
    ;
}
double getDistance(point a,point b){
    return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
point getCentral(point a,point b){
    point o;
    point c;//a,b中点
    c.x=(a.x+b.x)/;
    c.y=(a.y+b.y)/;
    double l=getDistance(c,o);//oc长度
    );
    double len=sqrt(1.0-temp*temp);//圆心到直线AB的距离
    point central;
//    if(fabs(a.y-b.y)<eps){
//        central.x=c.x;
//        central.y=c.y+len;
//    }
//    else {//大牛考虑了两个点几乎重合的情况,按照题意不必考虑
        double ang=atan(-(a.x-b.x)/(a.y-b.y));
        central.x=c.x+cos(ang)*len;//cos*斜边长
        central.y=c.y+sin(ang)*len;//sin*斜边长
        /*
        最初自己用临边/斜边的方式模拟正余弦值,但是误差不小,
        甚至两点确定的圆,距离两点的距离大于1
        */
/*注意:这个圆心最后是用中点的坐标加上cos*斜边长,但是减去呢?明显不对了虽然A了,但枚举不是正确的方法*/
//     }
    return central;
}

最新文章

  1. Android代码故事第一回,平均间隔的按钮
  2. 【GoLang】panic defer recover 深入理解
  3. 所有Mac用户都需要知道的9个实用终端命令行
  4. 【转】一个不错的eclipse反编译插件
  5. windows系统调用 进程终止
  6. hadoop是什么?
  7. Uva 10480 Sabotage 最大流
  8. 搭建用友开发环境(基于碧桂园的nchome)
  9. Redis的PHP操作手册(自用)
  10. cURL.1 手册页
  11. MYSQL 数据表备份
  12. 51nod_1040:最大公约数之和(数论)
  13. Oracle创建表空间、用户、分配权限语句
  14. ipcs、ipcrm、sysresv、kernel.shmmax
  15. New UWP Community Toolkit - Markdown
  16. android sdk里的各目录作用
  17. java项目----衣服购买
  18. Debian系统 + XFCE桌面初识,基础环境搭建
  19. (7) MySQL数据库备份详解
  20. 面向对象的Java实现

热门文章

  1. 数据库外连接及MySQL实现
  2. easyui(一) 初始easyui
  3. RabbitMQ安装|使用|概念|Golang开发
  4. 多个Tomcat 配置多个JDK
  5. tcp/ip通信传输流
  6. mybatis学习笔记(五) -- maven+spring+mybatis从零开始搭建整合详细过程(附demo和搭建过程遇到的问题解决方法)
  7. VB6之断点续传
  8. easyui点击搜索的时候获取不要文本框里面的值的问题
  9. JavaSE中Map框架学习笔记
  10. UWP:使用Behavior实现Button点击动态效果