大佬求调

P1141 01迷宫

_AC_IS_GOD_QP_ @ 2024-07-20 13:48:23

rt,输入不了起始坐标。。。

#include<bits/stdc++.h>
using namespace std;
struct node{
    int w_n,r,c;
};
int main(){
    int n,m;
    bool a[1005][1005];
    int maxx=-1e9;
    queue<node> Q;
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            cin>>a[i][j];
        }
    }
    while(m--){
        node init;
        init.w_n=1;
        int r1,c1;
        cin>>r1>>c1;
        init.r=r1;
        init.c=c1;
        Q.push(init);
        while(Q.size()){
            bool flag=false;
            node L=Q.front();
            if(L.c-1>0&&a[L.r][L.c-1]!=a[L.r][L.c]){
                L.c--;
                L.w_n++;
                Q.push(L);
                flag=true;
            }
            L=Q.front();
            if(L.c+1<=n&&a[L.r][L.c+1]!=a[L.r][L.c]){
                L.c++;
                L.w_n++;
                Q.push(L);
                flag=true;
            }
            L=Q.front();
            if(L.r-1>0&&a[L.r-1][L.c]!=a[L.r][L.c]){
                L.r--;
                L.w_n++;
                Q.push(L);
                flag=true;
            }
            L=Q.front();
            if(L.r+1<=n&&a[L.r+1][L.c]!=a[L.r][L.c]){
                L.r++;
                L.w_n++;
                Q.push(L);
                flag=true;
            }
            if(!flag){
                maxx=max(maxx,L.w_n);
            }
            Q.pop();
        }
        cout<<maxx<<endl;
    }
    return 0;
}

求调


|