曼哈顿距离,两个点在标准坐标系上的绝对轴距总和。
#include <iostream>
#include <algorithm>
#include <vector>
#include <cmath>
using namespace std;
typedef pair<int,int> PII; //pair将一对值组合成一个值,这一对值可以具有不同的数据类型(T1和T2),两个值可以分别用pair的两个公有函数first和second访问。
const int maxn = 100000 + 10;
vector<int>dis;
vector<int>::iterator it; //vector迭代器
PII p[maxn];
int main()
{
int T;
cin>>T;
while(T--)
{
dis.clear();
int n,m;
cin>>n>>m;
int flag = 0;
for( int i = 0; i < n; i++ )
{
cin>>p[i].first>>p[i].second;
if(flag)continue;
for( int j = i-1; j >=0 ; j-- )
{
int d = abs(p[i].first - p[j].first) + abs(p[i].second - p[j].second);
it = find(dis.begin(),dis.end(),d);
if(it!=dis.end())
{
flag = 1;
}
else dis.push_back(d);
}
}
cout<<(flag?"YES":"NO")<<endl;
}
return 0;
}