zoukankan      html  css  js  c++  java
  • hdu1077

    #include<iostream>
    #include<cmath>
    using namespace std;

    struct Point
    {
    double x,y;
    };

    double dis_sq(const Point& a,const Point& b) //距离平方
    {
    return (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);
    }

    Point lock_center(const Point& a,const Point& b)
    {
    Point s,e,m;
    double d,c,ang;

    s.x=b.x-a.x; //用于计算角度
    s.y=b.y-a.y;
    m.x=(a.x+b.x)/2.0; //中点
    m.y=(a.y+b.y)/2.0;
    d=dis_sq(a,m);
    c=sqrt(1.0-d);
    if(fabs(s.y)<1e-8) //ab是直径
    {
    e.x=m.x;
    e.y=m.y+c;
    }
    else
    {
    ang=atan(-s.x/s.y); //求弦ab的垂直平分线与x轴所成的夹角
    e.x=m.x+c*cos(ang);
    e.y=m.y+c*sin(ang);
    }
    return e;
    }

    int main()
    {
    int T,n,i,j,k,ans,tmp;
    Point p[310],c;

    scanf("%d",&T);
    while(T--)
    {
    scanf("%d",&n);
    for(i=0;i<n;i++)
    scanf("%lf%lf",&p[i].x,&p[i].y);
    ans=1; //一个点时为1种
    for(i=0;i<n-1;i++)
    for(j=i+1;j<n;j++)
    if(dis_sq(p[i],p[j])<=4.0) //平方
    {
    c=lock_center(p[i],p[j]);
    tmp=0;
    for(k=0;k<n;k++)
    if(sqrt(dis_sq(c,p[k]))<=1.0001)
    tmp++;
    if(ans<tmp)
    ans=tmp;
    }
    cout<<ans<<endl;
    }
    return 0;
    }

  • 相关阅读:
    Spring基于注解的事务控制
    Spring基于配置的事务控制
    Spring基于注解配置AOP
    字符串构造,思维
    DP
    线段树二分
    计算机组成原理
    Graph Attention Networks (GAT) 代码解读
    Python 列表与字典
    2.运算方法和运算器
  • 原文地址:https://www.cnblogs.com/wangkun1993/p/6341633.html
Copyright © 2011-2022 走看看