求大犇调试DFS10分
查看原帖
求大犇调试DFS10分
638734
feiwuTeamcaptain楼主2023/3/9 13:47
#include<cstdio>
using namespace std;
const int N=110;
int a[N][N];
int n,m,sum;
int x[8]= {-1,0,1,1,1,0,-1,-1};
int y[8]= {1,1,1,0,-1,-1,-1,0};
void dfs(int xx,int yy) {
	for(int i=1; i<=8; i++) {
		if(a[xx+x[i]][yy+y[i]]==false) {
			sum++;
			return;
		}
	}
	for(int i=1; i<=8; i++) {
		if(a[xx+x[i]][yy+y[i]]==1) {
			a[xx][yy]=0;
			dfs(xx+x[i],yy+y[i]);
		}
	}
}
int main() {
	scanf("%d%d",&n,&m);
	for(int i=1; i<=n; i++) {
		for(int j=1; j<=m; j++) {
			char jjb;
			scanf("%c",&jjb);
			if(jjb=='w') {
				a[i][j]=1;
			}
		}
	}
	for(int i=1; i<=n; i++) {
		for(int j=1; j<=m; j++) {
			if(a[i][j]==1) {
				dfs(i,j);
			}
		}
	}
	printf("%d",sum);
	return 0;
}
2023/3/9 13:47
加载中...