70分!!!#2#9#10 TLE
  • 板块P1141 01迷宫
  • 楼主ZJLmath
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/12/27 15:57
  • 上次更新2023/10/24 06:25:12
查看原帖
70分!!!#2#9#10 TLE
764672
ZJLmath楼主2022/12/27 15:57
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
bool a[1000][1000];
bool vis[1000][1000];
int n,m;
int ans=0;
void dfs(int x,int y,bool mov){
	if(vis[x][y]==1)return;
	if(a[x][y]==mov)return;
	if(x<1||x>n||y<1||y>n)return;
	vis[x][y]=1;
	ans++;
	bool now=a[x][y];
	dfs(x-1,y,now);
	dfs(x,y-1,now);
	dfs(x+1,y,now);
	dfs(x,y+1,now);
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;++i){
		for(int j=1;j<=n;++j){
			scanf("%1d",&a[i][j]);
		}
	}
	while(m--){
		int x,y;
		cin>>x>>y;
		ans=0;
		memset(vis,0,sizeof(vis));
		dfs(x,y,!a[x][y]);
		cout<<ans<<endl;
	}
	return 0;
}
2022/12/27 15:57
加载中...