Hdu5762

Posted repulser

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hdu5762相关的知识,希望对你有一定的参考价值。

Hdu5762

题意:

你n个点,让你找两个数对,A,B和C,D,使得A和B的曼哈顿距离等于C和D的曼哈顿距离,问是否存在这样的对,A!=C且B!=D。

解法:

直接暴力判断,时间复杂度是 $ O(n^2) $
如果单纯的看数据范围的话好像一定会TLE,但是根据鸽笼原理,保证了在一定的数据范围内一定有合法解出现,这就保证了我们一定不会TLE。

CODE:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>

using namespace std;

#define LL long long
const int N = 1e5 + 100;

struct Node 
    LL x,y;
a[N];
LL T,n,m;
bool flag,vis[2*N+100];

inline LL calc(Node a,Node b) 
    return abs(a.x - b.x) + abs(a.y - b.y);


int main() 
    scanf("%lld",&T);
    while(T--) 
        flag = false;
        memset(vis,false,sizeof(vis));
        scanf("%lld%lld",&n,&m);
        for(int i = 0 ; i < n ; i++) 
            scanf("%lld%lld",&a[i].x,&a[i].y);
            if(!flag) 
                for(int j = 0 ; j < i ; j++) 
                    LL k = calc(a[i],a[j]);
                    if(vis[k]) 
                        flag = true;
                        break;
                    
                    else vis[k] = true;
                
            
        
        if(flag) puts("YES");
        else puts("NO");
    
    return 0;

以上是关于Hdu5762的主要内容,如果未能解决你的问题,请参考以下文章

HDU 1872 稳定排序

Leetcode5762. 恰有 K 根木棍可以看到的排列数目(第一类斯特林数)

带有一些逻辑的 MongoDB $addToSet

带有一些逻辑的 MongoDB $addToSet

如何使用 mongoose 从 refs 获取数组

所有的畅通工程[HDU1232][HDU1874][HDU1875][HDU1879]