Conturbatio

    Conturbatio
    Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
    Total Submission(s): 944    Accepted Submission(s): 423


    Problem Description
    There are many rook on a chessboard, a rook can attack the row and column it belongs, including its own place.

    There are also many queries, each query gives a rectangle on the chess board, and asks whether every grid in the rectangle will be attacked by any rook?



    Input
    The first line of the input is a integer T, meaning that there are T test cases.

    Every test cases begin with four integers n,m,K,Q.
    K is the number of Rook, Q is the number of queries.

    Then K lines follow, each contain two integers x,y describing the coordinate of Rook.

    Then Q lines follow, each contain four integers x1,y1,x2,y2 describing the left-down and right-up coordinates of query.

    1≤n,m,K,Q≤100,000.

    1≤x≤n,1≤y≤m.

    1≤x1≤x2≤n,1≤y1≤y2≤m.



    Output
    For every query output "Yes" or "No" as mentioned above.


    Sample Input
    2
    2 2 1 2
    1 1
    1 1 1 2
    2 1 2 2
    2 2 2 1
    1 1
    1 2
    2 1 2 2


    Sample Output
    Yes
    No
    Yes

    HintHuge input, scanf recommended. 

就是看是否在所輸入的矩陣中你的車能否全部走完

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

using namespace std;
const int MAXX=100000+10;
int  L[MAXX];
int  C[MAXX];
int N,M,K,Q;
int main(){
    int T; scanf("%d",&T);
    while(T--){
        scanf("%d %d %d %d", &N, &M, &K, &Q);
        memset(L,false,sizeof(L));
        memset(C,false,sizeof(C));
        int x1,y1,x2,y2;
        for(int i=0;i<K;i++){
            scanf("%d %d",&x1,&y1);
            C[x1]=1; L[y1]=1;
        }
        for(int i=1;i<=N;i++)
            C[i]+=C[i-1];
        for(int i=1;i<=M;i++)
            L[i]+=L[i-1];
        for(int i=0;i<Q;i++){
            scanf("%d %d %d %d",&x1,&y1,&x2,&y2);
            if(C[x2]-C[x1-1]==x2-x1+1||L[y2]-L[y1-1]==y2-y1+1)//需仔細要想想
                printf("Yes\n");
            else
                printf("No\n");
        }
    }
    return 0;
}
發佈了95 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章