拿第一个点的数据自己测试的时候没问题,提交就WA怎么回事
查看原帖
拿第一个点的数据自己测试的时候没问题,提交就WA怎么回事
748751
hello_mi_fans楼主2022/10/15 18:52

怎么回事啊啊,样例和第一个点的数据都过了,但是第一个点还是WA,其他的RE。。。

#include <bits/stdc++.h>
using namespace std;

int n,m,ww[1009][1009],qq[100010][2],ans_list[100010],ans,ans_num;

void dfs(int x,int y,int sta){
	if(!(ww[x][y]==sta||ww[x][y]>1)){
		ww[x][y]=ans_num;
		ans++;
		if(x-1>=1) dfs(x-1,y,(sta==1?0:1));
		if(x+1<=n) dfs(x+1,y,(sta==1?0:1));
		if(y-1>=1) dfs(x,y-1,(sta==1?0:1));
		if(y+1<=n) dfs(x,y+1,(sta==1?0:1));
	}
}

void prep(int x,int y){
	if(ww[x][y]>1){
		cout<<ans_list[ww[x][y]]<<endl;
	}
	else{
		ans=0;
		dfs(x,y,(ww[x][y]==1?0:1));
		cout<<ans<<endl;
		ans_list[ans_num]=ans;
	}
}

int main(){
	cin>>n>>m;getchar();
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			ww[i][j]=(getchar()=='0'?0:1);
		}
		getchar();
	}
	for(int i=0;i<m;i++){
		cin>>qq[i][0]>>qq[i][1];
	}
	for(int i=0;i<m;i++){
		ans_num=i+2;
		prep(qq[i][0],qq[i][1]);
	}
	return 0;
}
2022/10/15 18:52
加载中...