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)