why
查看原帖
why
536449
wuziting2008楼主2021/11/15 10:01

大佬求助!

#include<bits/stdc++.h>
using namespace std;
short mm[1002][1002],n,m,nm[1002][1002];
void dfs(short x,short y,short h){
	if(nm[x][y]==1||x<=0||y<=0||x>n||y>n) return;
	if(h!=mm[x][y]) return;
	nm[x][y]=1;
	h++;
	dfs(x+1,y,h%2);
	dfs(x-1,y,h%2);
	dfs(x,y+1,h%2);
	dfs(x,y-1,h%2);
}
int main(){
	cin>>n>>m;
	for(short i=1;i<=n;i++)
		for(short j=1;j<=n;j++)
			cin>>mm[i][j];
	for(short i=1;i<=m;i++){
		int ans=0;
		short x,y;
		cin>>x>>y;
		dfs(x,y,mm[x][y]);
		for(short j=1;j<=n;j++)
			for(short k=1;k<=n;k++)
				if(nm[j][k]) ans++;
		cout<<ans;
		for(short j=1;j<=n;j++)
			for(short k=1;k<=n;k++)
				nm[j][k]=0;
	}
	return 0;
}
2021/11/15 10:01
加载中...