2016 Multi-University Training Contest 3 1011 Teacher Bo
2016-07-27 09:30
435 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5762
题目:
[align=left]Problem Description[/align]
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".
[align=left]Input[/align]
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).
[align=left]Output[/align]
T
lines, each line is "YES" or "NO".
[align=left]Sample Input[/align]
2
3 10
1 1
2 2
3 3
4 10
8 8
2 3
3 3
4 4
[align=left]Sample Output[/align]
YES
NO
考虑一种暴力,每次枚举两两点对之间的曼哈顿距离,并开一个桶记录每种距离是否出现过,如果某次枚举出现了以前出现的距离就输 YESYESYES
,否则就输 NONONO
.
注意到曼哈顿距离只有 O(M)O(M)O(M)
种,根据鸽笼原理,上面的算法在 O(M)O(M)O(M)
步之内一定会停止.所以是可以过得.
一组数据的时间复杂度 O(min{N2,M})O(\min{N^2,M})O(min{N2,M})
.
#include <iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#define N 210000
using namespace std;
int x
,y
,mp
,n,m;
int main()
{
int T;
cin>>T;
while(T--)
{
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++)
scanf("%d%d",&x[i],&y[i]);
int cnt=0,flag=1;
memset(mp,0,sizeof(mp));
for(int i=0;i<n&&flag;i++)
for(int j=0;j<i&&flag;j++)
{
int t=abs(x[i]-x[j])+abs(y[i]-y[j]);
if(mp[t])
{
flag=0;
break;
}
else mp[t]=1;
}
if(flag) cout<<"NO"<<endl;
else cout<<"YES"<<endl;
}
}
题目:
[align=left]Problem Description[/align]
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".
[align=left]Input[/align]
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).
[align=left]Output[/align]
T
lines, each line is "YES" or "NO".
[align=left]Sample Input[/align]
2
3 10
1 1
2 2
3 3
4 10
8 8
2 3
3 3
4 4
[align=left]Sample Output[/align]
YES
NO
考虑一种暴力,每次枚举两两点对之间的曼哈顿距离,并开一个桶记录每种距离是否出现过,如果某次枚举出现了以前出现的距离就输 YESYESYES
,否则就输 NONONO
.
注意到曼哈顿距离只有 O(M)O(M)O(M)
种,根据鸽笼原理,上面的算法在 O(M)O(M)O(M)
步之内一定会停止.所以是可以过得.
一组数据的时间复杂度 O(min{N2,M})O(\min{N^2,M})O(min{N2,M})
.
#include <iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#define N 210000
using namespace std;
int x
,y
,mp
,n,m;
int main()
{
int T;
cin>>T;
while(T--)
{
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++)
scanf("%d%d",&x[i],&y[i]);
int cnt=0,flag=1;
memset(mp,0,sizeof(mp));
for(int i=0;i<n&&flag;i++)
for(int j=0;j<i&&flag;j++)
{
int t=abs(x[i]-x[j])+abs(y[i]-y[j]);
if(mp[t])
{
flag=0;
break;
}
else mp[t]=1;
}
if(flag) cout<<"NO"<<endl;
else cout<<"YES"<<endl;
}
}
相关文章推荐
- hdu 1839 Delay Constrained Maximum Capacity Path(二分+SPFA)
- hdoj-2674-N!Again
- HDU 2966 In case of failure KD树
- 2016 Multi-University Training Contest 3----解题报告
- HDU 5761_2016 Multi-University Training Contest 3
- grails中Template
- 220. Contains Duplicate III—medium
- 2016 Multi-University Training Contest 3 1011【鸽巢原理】
- 2016 Multi-University Training Contest 3
- 2016 Multi-University Training Contest 3 1002 Permutation Bo
- hdu 5754 2016 Multi-University Training Contest 3(各种博弈)
- 2016 Multi-University Training Contest 3 1001 Sqrt Bo
- POJ Problem 1363 Rails 【栈】
- Along with all the above benefits, you cannot overlook the space efficiency and performance gains in using DataFrames and Dataset APIs for two reasons.
- hdu 5753 Permutation Bo(2016 Multi-University Training Contest 3——组合)
- No.011 Container With Most Water
- 当你输入一个网址/点击一个链接,发生了什么?(以www.baidu.com为例)
- Apache 安装出现 Failed to open the Windows service manager, perhaps you forgot to log in as Adminstrator
- 2016 Multi-University Training Contest 3 Sqrt Bo
- main调用静态函数时候注意问题