HDU 5762(暴力)
来源:互联网 发布:淘宝的老板是谁 编辑:程序博客网 时间:2024/05/18 05:59
- Problem Description
- Input
- Output
- 题目大意
- 分析
- 代码
Problem Description
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≤
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
.
题目大意
问能否找到两组不同的点对(A,B)、(C,D)(A,B,C,D均为点坐标的编号,A
分析
题中所给各点坐标均为整数,取值范围在[0,M],可以很快想到曼哈顿距离的域为[0,2M]。
根据抽屉原理
如果n+1个物体被放进n个盒子,那么至少有一个盒子包含两个或更多的物体。
即最多暴力枚举2M+1个点对,即可得到判断存在可行点对。
代码
#include<iostream>#include<cstring>#include<cmath>#include<algorithm>#include<cstdio>using namespace std;const int MAXN = 100000 + 10;const int MOD = 1e9 + 7;int mark[MAXN * 2];int x[MAXN],y[MAXN];int n,m;int getManhattan(int i,int j){ return abs(x[i] - x[j]) + abs(y[i] - y[j]); }void solve(){ memset(mark,0,sizeof(mark)); for(int i=0;i<n;i++) { for(int j=i+1;j<n;j++) { int tmp = getManhattan(i,j); if(mark[tmp]) {printf("YES\n"); return;} mark[tmp]++; } } printf("NO\n");}int main(){ int t; scanf("%d",&t); while(t-- && scanf("%d %d",&n,&m)) { for(int i=0;i<n;i++) scanf("%d %d",&x[i],&y[i]); solve(); }}
- HDU 5762(暴力)
- hdu 5762(暴力)
- HDU 5762 Teacher Bo (暴力)
- HDU 5762 Teacher Bo (特判后暴力)
- hdu 5762 Teacher Bo(暴力美学)
- hdu 5762 (思维 + 暴力)
- HDU 5745(暴力)
- hdu 1015 (DFS,暴力)
- hdu 4968(暴力枚举)
- HDU 5258(水暴力)
- hdu 5305 Friends(暴力)
- hdu 5353 Average(暴力)
- hdu 5339 Untitled(暴力)
- hdu 5386 Cover (暴力)
- hdu 5386 Cover(暴力)
- hdu 5492 (暴力+nice)
- HDU 1238 Substrings (暴力)
- hdu 4665 Unshuffle(暴力)
- linux搭建svn(转)
- Tomcat配置数据库连接池
- Java ArrayList转数组泛型方法错误ArrayStoreException处理办法
- LightOJ 1364 Expected Cards(724训练题目)
- 从零开始的Android新项目6 - Repository层(下) Realm、缓存、异常处理
- HDU 5762(暴力)
- 从零开始的Android新项目7 - Data Binding入门篇
- Manacher 字符串回文查询算法说解
- TextView深度解析
- 腾讯课堂学习资源链接地址
- 从零开始的Android新项目8 - Data Binding高级篇
- Java设计模式透析之 —— 单例(Singleton)
- 指针与数组
- checkbox全选与反选