20分求调
查看原帖
20分求调
1070431
ywtank楼主2024/12/14 21:58
#include <bits/stdc++.h>
using namespace std;
char c[200][200];
int sum=0;
int n,m;
int pian[12][2]={
	{0,-2},
	{0,2},
	{0,1},
	{0,-1},
	{1,0},
	{-1,0},
	{1,1},
	{1,-1},
	{-1,-1},
	{-1,1},
	{2,0},
	{-2,0},
};
void dfs(int x,int y){
	c[x][y]='-';
	for(int i=0;i<12;i++){
		int xx=x-pian[i][1];
		int yy=y-pian[i][2];
		if(xx<1 || xx>n || yy<1 || yy>m || c[xx][yy]=='-')continue;
		c[xx][yy]='-';
		dfs(xx,yy);
	}
}
int main(){
	cin >> n >> m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin >> c[i][j];
			if(c[i][j]=='\n')cin >> c[i][j];
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(c[i][j]=='#'){
				dfs(i,j);
				sum++;
			}
		}
	}
	cout << sum;
	return 0;
} 

WA 20pts 希望各位大佬帮忙看看

2024/12/14 21:58
加载中...