hdu 5762 Teacher Bo 暴力
2016-07-26 18:14
337 查看
Teacher Bo
题目连接:
http://acm.hdu.edu.cn/showproblem.php?pid=5762Description
Teacher BoBo is a geography teacher in the school.One day in his class,he marked N points in the map,the i-th point is at (Xi,Yi).He wonders,whether there is a tetrad (A,B,C,D)(A<B,C<D,A≠CorB≠D) such that the manhattan distance between A and B is equal to the manhattan distance between C and D. If there exists such tetrad,print "YES",else print "NO".
Input
First line, an integer T. There are T test cases.(T≤50)In each test case,the first line contains two intergers, N, M, means the number of points and the range of the coordinates.(N,M≤105).
Next N lines, the i-th line shows the coordinate of the i-th point.(Xi,Yi)(0≤Xi,Yi≤M).
Output
T lines, each line is "YES" or "NO".Sample Input
23 10
1 1
2 2
3 3
4 10
8 8
2 3
3 3
4 4
Sample Output
YESNO
Hint
题意
让你找到两组不同的点,使得他们的曼哈顿距离相同题解:
考虑一种暴力,每次枚举两两点对之间的曼哈顿距离,并开一个桶记录每种距离是否出现过,如果某次枚举出现了以前出现的距离就输 YES ,否则就输 NO .注意到曼哈顿距离只有 O(M) 种,根据鸽笼原理,上面的算法在 O(M)步之内一定会停止.所以是可以过得.
一组数据的时间复杂度 O(\min{N^2,M})
,M}) .
代码
#include <bits/stdc++.h> using namespace std; const int N=100010; int x ,y ,vis[N*4]; int main() { int T; scanf("%d",&T); while(T--) { int n,m; scanf("%d%d",&n,&m); int flag=1,mx=m*4+10,cnt=0; for(int i=0;i<=mx;i++) vis[i]=0; for(int i=0;i<n;i++) scanf("%d%d",&x[i],&y[i]); for(int i=0;i<n;i++) { for(int j=i+1;j<n;j++) { if(cnt>mx) { flag=0; break; } if(vis[abs(x[i]-x[j])+abs(y[i]-y[j])]) { flag=-1; break; } vis[abs(x[i]-x[j])+abs(y[i]-y[j])]=1;cnt++; } if(flag<1) break; } if(flag==-1) printf("YES\n");else printf("NO\n"); } return 0; }
相关文章推荐
- (13)网页布局剖析与制作(上)
- springmvc+mybatis高效接口编程
- 71.You configured the Flash Recovery Area for your database. The database instance has been started
- AFNetworiking与ASIHttpRequest对比
- HDU1551:Cable master(二分)
- Quartz定时任务简单实现
- OSG中抓取屏幕保存为图片
- 各种学习型网站
- phpstorm+Xdebug断点调试PHP
- hdu5738组合计数,极角排序
- linux 下无法shutdown.sh Tomcat的解决办法
- OC多线程的理解
- 深入剖析 JavaScript 的深复制
- linux网络编程之简单的服务器多线程
- Java 笔记(01)之 FileReader FileInputStream InputStreamReader BufferedReader 作用与区别
- 找朋友
- 前三天总结
- PHPStorm IntelliJ IDEA 代码缩进风格设置
- BottomSheet的用法
- Android NDK Samples