zoukankan      html  css  js  c++  java
  • hdu 1077 Catching Fish

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    #include<iostream>
    #include<math.h>
    using namespace std;
    const int MAXN=330;
    const double eps=1e-4;
    
    double p[MAXN][2];
    double xx1,yy1,xx2,yy2;
    
    double dis(int i,int j)
    {
        return sqrt((p[i][0]-p[j][0])*(p[i][0]-p[j][0])+(p[i][1]-p[j][1])*(p[i][1]-p[j][1]));
    }
    
    void get_center_point(int a,int b)
    {
        double x0=(p[a][0]+p[b][0])/2;
        double y0=(p[a][1]+p[b][1])/2;
        double d=sqrt(1-((p[a][0]-p[b][0])*(p[a][0]-p[b][0])+(p[a][1]-p[b][1])*(p[a][1]-p[b][1]))/4);
        if(fabs(p[a][1]-p[b][1])<1e-6)
        {
            xx1=x0;
            yy1=y0+d;
            xx2=x0;
            yy2=y0-d;
        }
        else
        {
            double tmp=atan(-(p[a][0]-p[b][0])/(p[a][1]-p[b][1]));
            double dx=d*cos(tmp);
            double dy=d*sin(tmp);
            xx1=x0+dx;
            yy1=y0+dy;
            xx2=x0-dx;
            yy2=y0-dy;
        }
    }
    
    int main()
    {
        int T;
        int n;
        scanf("%d",&T);
        while(T--)
        {
            scanf("%d",&n);
            for(int i=0;i<n;i++)
               scanf("%lf%lf",&p[i][0],&p[i][1]);
            int ans=1;
            for(int i=0;i<n;i++)
              for(int j=i+1;j<n;j++)
              {
                  if(dis(i,j)>2.0)continue;
                  get_center_point(i,j);
                  int cnt=0;
                  for(int i=0;i<n;i++)
                    if(sqrt((p[i][0]-xx1)*(p[i][0]-xx1)+(p[i][1]-yy1)*(p[i][1]-yy1))<1+eps)
                      cnt++;
                  if(cnt>ans)ans=cnt;
                  cnt=0;
                  for(int i=0;i<n;i++)
                    if(sqrt((p[i][0]-xx2)*(p[i][0]-xx2)+(p[i][1]-yy2)*(p[i][1]-yy2))<1+eps)
                      cnt++;
                  if(cnt>ans)ans=cnt;
              }
            printf("%d\n",ans);
        }
        return 0;
    }

  • 相关阅读:
    3.16 使用Zookeeper对HDFS HA配置自动故障转移及测试
    4、html的body内标签之input系列
    Gym
    Gym
    Gym
    Gym
    Gym
    Big Event in HDU HDU1171 (多重背包)
    Coins POJ 1742 多重背包部分和
    HDU 1059 Dividing 多重背包
  • 原文地址:https://www.cnblogs.com/java20130726/p/3218257.html
Copyright © 2011-2022 走看看