Catching Fish

Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 1052    Accepted Submission(s): 385

Problem Description
Ignatius likes catching fish very much. He has a fishnet whose shape is a circle of radius one. Now he is about to use his fishnet to catch fish. All the fish are in the lake, and we assume all the fish will not move when Ignatius catching them. Now Ignatius wants to know how many fish he can catch by using his fishnet once. We assume that the fish can be regard as a point. So now the problem is how many points can be enclosed by a circle of radius one.

Note: If a fish is just on the border of the fishnet, it is also caught by Ignatius.

Input
The input contains several test cases. The first line of the input is a single integer T which is the number of test cases. T test cases follow.
Each test case starts with a positive integer N(1<=N<=300) which indicate the number of fish in the lake. Then N lines follow. Each line contains two floating-point number X and Y (0.0<=X,Y<=10.0). You may assume no two fish will at the same point, and no two fish are closer than 0.0001, no two fish in a test case are approximately at a distance of 2.0. In other words, if the distance between the fish and the centre of the fishnet is smaller 1.0001, we say the fish is also caught.

Output
For each test case, you should output the maximum number of fish Ignatius can catch by using his fishnet once.

Sample Input
4
3
6.47634 7.69628
5.16828 4.79915
6.69533 6.20378
6
7.15296 4.08328
6.50827 2.69466
5.91219 3.86661
5.29853 4.16097
6.10838 3.46039
6.34060 2.41599
8
7.90650 4.01746
4.10998 4.18354
4.67289 4.01887
6.33885 4.28388
4.98106 3.82728
5.12379 5.16473
7.84664 4.67693
4.02776 3.87990
20
6.65128 5.47490
6.42743 6.26189
6.35864 4.61611
6.59020 4.54228
4.43967 5.70059
4.38226 5.70536
5.50755 6.18163
7.41971 6.13668
6.71936 3.04496
5.61832 4.23857
5.99424 4.29328
5.60961 4.32998
6.82242 5.79683
5.44693 3.82724
6.70906 3.65736
7.89087 5.68000
6.23300 4.59530
5.92401 4.92329
6.24168 3.81389
6.22671 3.62210

Sample Output
2
5
5
11

Author
Ignatius.L

#include <cmath>
#include <cstdio> using namespace std; const static double eps = 1e-; 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[],a,b,c;
int n;
scanf("%d",&test);
while(test--)
{
scanf("%d",&n);
for(int i=; i<n;i++)
scanf("%lf%lf",&p[i].x,&p[i].y); int ans = ;
int temp = ;
for(int i=; i<n; i++)
for(int j=i+;j<n;j++)
{ if(distancess(p[i],p[j])>) continue;
a = look_center(p[i],p[j]);
temp = ;
for(int k=;k<n;k++)
{
if(distancess(a,p[k])<=1.000001) temp++;
}
if(ans<temp) ans = temp;
}
printf("%d\n",ans);
}
return ; }

Catching Fish[HDU1077]的更多相关文章

  1. hduoj 1077 Catching Fish 求单位圆最多覆盖点个数

    Catching Fish Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  2. HDU 1077 Catching Fish(用单位圆尽可能围住多的点)

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1077 Catching Fish Time Limit: 10000/5000 MS (Java/Oth ...

  3. (水题)HDU - 1077 - Catching Fish - 计算几何

    http://acm.hdu.edu.cn/showproblem.php?pid=1077 很明显这样的圆,必定有两个点在边界上.n平方枚举圆,再n立方暴力判断.由于没有给T,所以不知道行不行.

  4. HDU 1077Catching Fish(简单计算几何)

    Catching Fish Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T ...

  5. Lesson 20 One man in a boat

    Text Fishing is my favourite sport. I often fish for hours without catching anything. But this does ...

  6. NCE2

    1.A private conversation Last week I went to the theatre. I had a very good seat. The play was very ...

  7. New Concept English Two 9 22

    The video can be found on the website. $课文20 独坐孤舟 190. Fishing is my favourite sport. 钓鱼是我特别喜爱的一项运动. ...

  8. 2018年暑假ACM个人训练题7 题解报告

    A:HDU 1060 Leftmost Digit(求N^N的第一位数字 log10的巧妙使用) B:(还需要研究一下.....) C:HDU 1071 The area(求三个点确定的抛物线的面积, ...

  9. hdu 1077(单位圆覆盖问题)

    Catching Fish Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

随机推荐

  1. Unity游戏开发之“屏幕截图”

    原地址:http://sygame.lofter.com/post/117105_791680 在unity游戏开发中,可能会遇到在游戏中截屏的效果.这儿提供两种截屏方法.(方法二提供显示截图缩略图代 ...

  2. IOS开发的目录结构

    http://www.itjhwd.com/iosmolukaifa/ 目录结构      个人总结:  =============================================== ...

  3. 7 Types of Regression Techniques you should know!

    翻译来自:http://news.csdn.net/article_preview.html?preview=1&reload=1&arcid=2825492 摘要:本文解释了回归分析 ...

  4. Coursera台大机器学习技法课程笔记03-Kernel Support Vector Machine

    这一节讲的是核化的SVM,Andrew Ng的那篇讲义也讲过,讲的也不错. 首先讲的是kernel trick,为了简化将低维特征映射高维特征后的计算,使用了核技巧.讲义中还讲了核函数的判定,即什么样 ...

  5. meanshift和camshift

    参考:http://www.cnblogs.com/tornadomeet/archive/2012/03/15/2398769.html 照着这位大神的代码运行了一下,发现meanshift的跟踪效 ...

  6. Calico在Kubernetes中的搭建

    一,需求 Kubernetes官方推荐的是Flannel,但是Flannel是一个overlay的网络,对性能会有一定的影响.Calico恰好能解决一下overlay网络的不足. Calico在Kub ...

  7. 【leetcode】Best Time to Buy and Sell Stock II

    Best Time to Buy and Sell Stock II Say you have an array for which the ith element is the price of a ...

  8. sqlserver的执行计划

    一:执行计划生成过程 说到执行计划,首先要知道的是执行计划大概生成的过程,这样就可以做到就心中有数了,下面我画下简图: 1. 分析过程 这三个比较容易理解,首先我们要保证sql的语法不能错误,sele ...

  9. Codeforces 417 C

    Football Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Submit Sta ...

  10. Fedora install chrome

    1)下载chrome:chrome download,选择rpm版,下载地址:https://dl.google.com/linux/direct/google-chrome-stable_curre ...