60分,求助!
查看原帖
60分,求助!
735164
pengqiushi楼主2022/9/24 22:02

代码如下:

#include<iostream>
using namespace std;
char a[105][105];
int q[105][105];
void dfs(int x,int y){
	q[x][y]=1;
	if(a[x+1][y]=='W'&&q[x+1][y]==0)
		dfs(x+1,y);
	if(a[x-1][y]=='W'&&q[x-1][y]==0)
		dfs(x-1,y);
	if(a[x][y+1]=='W'&&q[x][y+1]==0)
		dfs(x,y+1);
	if(a[x][y-1]=='W'&&q[x][y+1]==0)
		dfs(x,y-1);
	if(a[x+1][y+1]=='W'&&q[x+1][y+1]==0)
		dfs(x+1,y+1);
	if(a[x-1][y+1]=='W'&&q[x-1][y+1]==0)
		dfs(x-1,y+1);
	if(a[x+1][y-1]=='W'&&q[x+1][y-1]==0)
		dfs(x+1,y-1);
	if(a[x-1][y-1]=='W'&&q[x-1][y-1]==0)
		dfs(x-1,y-1);
	return;
}
int main()
{
	int n,m;
	cin>>n>>m;
	for(int i=1; i<=n; i++)
		for(int j=1; j<=m; j++)
			cin>>a[i][j];
	int cnt=0;
	for(int i=1; i<=n; i++)
		for(int j=1; j<=m; j++)
			if(a[i][j]=='W'&&q[i][j]==0){
				dfs(i,j);
				cout<<i<<" "<<j<<endl;
				cnt++;
			}
	cout<<cnt;
	return 0;
}

评测记录 我还下载了#7,发现果然是错的: in:

30 30
...........W.W....W.W......WWW
..WWWW..WWW.....W.....W....W.W
..W.......W.......W.W.WW......
.W...WW.W.......W......WW.....
..WWW.............W......WW...
.W...W.......W..W.W.W.....W...
...WW..W..WWW...WW............
W........W.......W...W..W.....
..W.....................WW..W.
.W.....W.W.....WW.......WW..W.
W....W..W....W.W.W..W....W....
.....WWW...W.W.W.WW.....WW.W..
WW..W....W.W..W..W.W...W......
.W.WW..W...W....W..W..W.......
.W..W..W..W..WW..WW.......WWW.
.....WWW......WW.W..WW..W.W...
W.W..W..W..W.......WWW.WW.W.W.
...W...W.WW...W........W..WW..
....W..W....WW.........W...W.W
WWW.......W.......W...W.WWW...
W.......W.....W.WW.W....WW..WW
W.W..WWW....WW........W.W.....
W.W..W.WW...W............WW.W.
.W.W..W...W...WW.WW.W....W.WW.
.WW.W......W...W...WW..W.W....
..W...W..W..W.W.WWWW..W..W..W.
W.W.WW.....WWWW.W...WWW.....W.
WW..........W.......WWW..WWWW.
W.WWWW...WWW.W.WW..W.W.W...WW.
...W..W.....WWWW..W....W..W...

out:

46

我的输出:

50

题目传送门

2022/9/24 22:02
加载中...