社区讨论
求助,萌新过不了,20分
P1596[USACO10OCT] Lake Counting S参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @lo1aj5d9
- 此快照首次捕获于
- 2023/10/22 17:52 2 年前
- 此快照最后确认于
- 2023/11/02 18:11 2 年前
CPP
#include<bits/stdc++.h>
using namespace std;
char a[110][110];
int n , m;
void dfs(int x , int y)
{
if (a[x][y] == '.')
{
return;
}
if (x < 0 || y < 0 || x > (n - 1) || y > (m - 1))
{
return;
}
a[x][y] = '.';
if (a[x + 1][y + 1] != '.')
{
dfs(x + 1 , y + 1);
}
if (a[x + 1][y - 1] != '.')
{
dfs(x + 1 , y - 1);
}
if (a[x - 1][y - 1] != '.')
{
dfs(x - 1 , y - 1);
}
if (a[x - 1][y + 1] != '.')
{
dfs(x - 1 , y + 1);
}
if (a[x][y - 1] != '.')
{
dfs(x , y - 1);
}
if (a[x][y + 1] != '.')
{
dfs(x , y + 1);
}
if (a[x + 1][y] != '.')
{
dfs(x + 1 , y);
}
if (a[x - 1][y] != '.')
{
dfs(x - 1 , y);
}
return;
}
int main(void)
{
int n , m;
scanf("%d%d" , &n , &m);
for (int i = 0 ; i < n ; i++)
{
scanf("%s" , a[i]);
}
int ans = 0;
for (int i = 0 ; i < n ; i++)
{
for (int j = 0 ; j < m ; j++)
{
if (a[i][j] == 'W')
{
ans++;
}
dfs(i , j);
}
}
printf("%d" , ans);
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...