• HDU 5762Teacher Bo


    Teacher Bo

    Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)
    Total Submission(s): 133    Accepted Submission(s): 84


    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,ACorBD) 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.(T50)

    In each test case,the first line contains two intergers, N, M, means the number of points and the range of the coordinates.(N,M105).

    Next N lines, the i-th line shows the coordinate of the i-th point.(Xi,Yi)(0Xi,YiM).
     
    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
     
    直接暴力就可以了。为什么可以暴力?因为m最大才100000 那么最多也就有10 0000种曼哈顿距离。座椅答案一定在O(m)的时间内找到。
    /* ***********************************************
    Author        :guanjun
    Created Time  :2016/7/26 15:10:50
    File Name     :p311.cpp
    ************************************************ */
    #include <iostream>
    #include <cstring>
    #include <cstdlib>
    #include <stdio.h>
    #include <algorithm>
    #include <vector>
    #include <queue>
    #include <set>
    #include <map>
    #include <string>
    #include <math.h>
    #include <stdlib.h>
    #include <iomanip>
    #include <list>
    #include <deque>
    #include <stack>
    #define ull unsigned long long
    #define ll long long
    #define mod 90001
    #define INF 0x3f3f3f3f
    #define maxn 100010
    #define cle(a) memset(a,0,sizeof(a))
    const ull inf = 1LL << 61;
    const double eps=1e-5;
    using namespace std;
    priority_queue<int,vector<int>,greater<int> >pq;
    struct Node{
        int x,y;
    };
    struct cmp{
        bool operator()(Node a,Node b){
            if(a.x==b.x) return a.y> b.y;
            return a.x>b.x;
        }
    };
    
    bool cmp(int a,int b){
        return a>b;
    }
    int n,m;
    int x[maxn];
    int y[maxn];
    map<int,int>mp;
    int main()
    {
        #ifndef ONLINE_JUDGE
        freopen("in.txt","r",stdin);
        #endif
        //freopen("out.txt","w",stdout);
        int t;
        cin>>t;
        while(t--){
            cin>>n>>m;
            mp.clear();
            for(int i=1;i<=n;i++){
                scanf("%d%d",&x[i],&y[i]);
            }
            int mark=0;
            for(int i=1;i<=n;i++){
                for(int j=i+1;j<=n;j++){
                    int z=abs(x[i]-x[j])+abs(y[i]-y[j]);
                    if(!mp[z]){
                        mp[z]=1;
                    }
                    else{
                        mark=1;
                        break;
                    }
                }
                if(mark)break;
            }
            if(mark)puts("YES");
            else puts("NO");
        }
        return 0;
    }
  • 相关阅读:
    【20220606】一亩三分地
    【20220601】连岳摘抄
    【20220526】吃里扒外
    【一句日历】2022年6月
    【20220608】连岳摘抄
    【20220604】为了家人
    【20220530】人格就是路的指引
    工作感受月记202206月
    android开发Bad notification posted from package com.suyf.test: Couldn't create icon: StatusBarIcon(icon=Icon(typ=RESOURCE pkg=com.suyf.test id=0x7f0820dd) visible user=0 )解决方法
    Solution 「AGC 020F」Arcs on a Circle
  • 原文地址:https://www.cnblogs.com/pk28/p/5708663.html
Copyright © 2020-2023  润新知