偶的dfs出啥问题了
查看原帖
偶的dfs出啥问题了
1129279
liangcha_crush_ly楼主2024/6/1 11:27

rt

#include<iostream>

using namespace std;
char a[101][101];
int k,r,c,ans,w1[5]={0,1,-1,0,0},w2[5]={0,0,0,1,-1};
void dfs(int x,int y,int l){
	a[x][y]='#';
	if(l>=2)ans++;
for(int i=1;i<=4;i++){
	int xx=x+w1[i],yy=y+w2[i];
	if(xx>r||xx<1||yy>c||yy<1||a[xx][yy]=='#')continue;
	dfs(xx,yy,l+1);
}
}
signed main(){
	cin>>r>>c>>k;
	for(int i=1;i<=r;i++){
		for(int j=1;j<=c;j++){
			cin>>a[i][j];
		}
	}
for(int i=1;i<=r;i++){
		for(int j=1;j<=c;j++){
		if(a[i][j]=='.')dfs(i,j,1);
		}
	}
	cout<<ans;
	return 0;
}
2024/6/1 11:27
加载中...