全wa

P1141 01迷宫

woscxk @ 2024-07-26 19:42:49

#include<bits/stdc++.h>
using namespace std;
struct node{
    int x,y,step;
    bool _t;
}; 
queue<node> que;
node dab(int x,int y,int step,bool _t){
    node m;
    m.x=x;
    m.y=y;
    m.step=step;
    m._t=_t;
    return m;
}
int dx[4]={0,1,0,-1},dy[4]={1,0,-1,0};
int n,m;
int query[100001][2];
bool maps[1001][1001],vis[1001][1001];
int bfs(int x,int y){
    int cnt=0;
    cnt++;
    vis[x][y]=1;
    que.push(dab(x,y,0,maps[x][y]));
    while(1){
        node t=que.front();
        que.pop();
        int cnt2=0;
        for(int i=0;i<4;i++){
            int xx=t.x+dx[i],yy=t.y+dy[i];
            //cout<<t._t;
            if(xx<n&&xx>=0&&yy<n&&yy>=0&&(maps[xx][yy]==!t._t)&&(!vis[xx][yy])){
                cout<<xx<<' '<<yy<<'\n';
                cnt2++;
                cnt++;
                vis[xx][yy]=1;
                que.push(dab(xx,yy,t.step+1,!t._t));
            }
        }
        if(!cnt2)break;
    }
    memset(vis,0,sizeof(vis));
    return cnt;
}
int main(){
    cin>>n>>m;
    for(int i=0;i<n;i++)for(int j=0;j<n;j++)scanf("%1d",&maps[i][j]);
    for(int i=0;i<m;i++)cin>>query[i][0]>>query[i][1];;
    for(int i=0;i<m;i++)cout<<bfs(query[i][0]-1,query[i][1]-1)<<'\n';
}

|