hdu 5762 Teacher Bo 暴力
2024-09-22 08:29:43
Teacher Bo
题目连接:
http://acm.hdu.edu.cn/showproblem.php?pid=5762
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≤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
2
3 10
1 1
2 2
3 3
4 10
8 8
2 3
3 3
4 4
Sample Output
YES
NO
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[N],y[N],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;
}
最新文章
- Linux常用网络命令
- Python之路
- 解决NetBeans编辑器中文乱码问题
- 深入理解CSS定位中的堆叠z-index
- 预编译那些事#define后面只跟一个“参数”
- iOS - OC NSSet		集合
- OpenLayers简单介绍以及简单实例
- UVA - 297 Quadtrees (四分树)
- 许令波老师的java的IO机制分析文章
- Java 判断一段网络资源是否存在
- 转载:C# HashSet 用法
- Java 访问控制符
- readonly和const的区别
- Azure的两种关系型数据库服务:SQL Azure与SQL Server VM的不同
- hdu 5344 MZL&#39;s xor
- CentOS 7安装
- Vivado SDK ,调用math.h函数的时候出现 undefined reference to `xxx&#39; ,解决方案
- 结对作业_core组
- python基础数据类型—int、bool、字符串的常用方法
- 算法笔记 3.2 codeup1935 查找学生信息