全WA求看用的DFS

P1141 01迷宫

uid3303 @ 2024-03-20 21:40:16

样例能过,提交全WA 看不太懂题解,求帮助

#include<iostream>
using namespace std;
int a[1005][100005];
int n,m;

int p[4]= {0,0,1,-1};
int q[4]= {1,-1,0,0};
int sum;
void dfs(int x,int y) {
    if(x>n||x<1||y>n||y<1)
    return ;
    if(a[x][y]==-1)
    return ;
    sum++;
    a[x][y]=-1;
    for(int i=0; i<4; i++) {
        int xa=x+p[i];
        int ya=y+q[i];
        if(a[xa][ya]!=a[x][y]) {

            dfs(xa,ya);

        }

    }

}
int main() {

    cin>>n>>m;
    for(int i=1; i<=n; i++) {
        for(int j=1; j<=n; j++) {
            cin>>a[i][j];
        }
    }
    for(int i=1; i<=m; i++) {
        int x,y;
        sum=0;
        cin>>x>>y;
        dfs(x,y);
        cout<<sum<<endl;

    }
    return 0;
}

by Tkiwi @ 2024-04-03 09:16:41

有没有一种可能是在你回答完一次询问后没把数组改成-1的地方改回去(萌新勿喷QWQ)


|