社区讨论

dfs70分TLE

P114101迷宫参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@m6a6adj5
此快照首次捕获于
2025/01/24 10:58
去年
此快照最后确认于
2025/01/24 14:46
去年
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int a[1005][1005];
bool vis[1005][1005];
int dx[5]={0,-1,0,0,1};
int dy[5]={0,0,-1,1,0};
int n,m;
string x;
int l;
int sum;
void dfs(int x,int y){
	sum++;
	for(int i=1;i<=4;i++){
		int p=x+dx[i];
		int q=y+dy[i];
		if(a[p][q]!=a[x][y]&&vis[p][q]==0&&p>=1&&p<=n&&q>=1&&q<=l){
			vis[p][q]=1;
			dfs(p,q);
		}
	}
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>x;
		l=x.size();
		for(int j=1;j<=l;j++) a[i][j]=x[j-1]-'0';
	}
	for(int p=1;p<=m;p++){
		int i,j;
		cin>>i>>j;
		vis[i][j]=1;
		dfs(i,j);
		cout<<sum<<endl;
		sum=0;
		for(int i=1;i<=n;i++)
			for(int j=1;j<=l;j++) vis[i][j]=0;
	}
} 

回复

1 条回复,欢迎继续交流。

正在加载回复...