跪求大佬找错,样例都不对,P1141 01迷宫
  • 板块灌水区
  • 楼主mtz_FWB
  • 当前回复7
  • 已保存回复7
  • 发布时间2020/7/19 18:31
  • 上次更新2023/11/6 22:49:15
查看原帖
跪求大佬找错,样例都不对,P1141 01迷宫
84704
mtz_FWB楼主2020/7/19 18:31
#include<bits/stdc++.h>
using namespace std;
long long n,m,ans=1,tc[1010][1010],flag[10010][10010];
char c;
int dx[]{0,0,0,-1,1};
int dy[]{0,1,-1,0,0};
void dfs(int x,int y){
	if(x<1||x>n||y<1||y>n||flag[x][y]==1)return;
	flag[x][y]=1;
	for(int i=1;i<=4;++i){
		int tx=x+dx[i],ty=y+dy[i];
		if(tc[x][y]==0){
			if(tc[tx][ty]==1){
				ans++;
				flag[tx][ty]=1;
				dfs(tx,ty);
			}
		}
		if(tc[x][y]==1){
			if(tc[tx][ty]==0){
				ans++;
				flag[tx][ty]=1;
				dfs(tx,ty);
			}
		}
	}
}
int main(){
	int i,j,a,b;
	scanf("%d%d",&n,&m);
	for(i=1;i<=n;++i)
	  for(j=1;j<=n;++j){
		cin>>c;
		tc[i][j]=c-'0';	
	  }
	for(i=1;i<=m;++i){
		scanf("%d%d",&a,&b);
		dfs(a,b);
		printf("%d\n",ans);
		ans=1;
	}
	return 0;
}
2020/7/19 18:31
加载中...