解题思路:
遇到第一个W时,不断用"."替换掉周围的“W”。一次DFS后,和这个W 相连的W被全部替换掉,此时次数+1;
参考代码:
#include"iostream" using namespace std; int n, m; char a[1111][1111]; int ans = 0; void dfs(int x, int y) { a[x][y] = '.'; for (int i = -1;i <= 1;i++) { for (int j = -1;j <= 1;j++) { int dx = x + i; int dy = y + j; if (dx >= 0 && dx < n && dy >= 0 && dy < m && a[dx][dy] == 'W') dfs(dx, dy); } } } int main() { cin >> n >> m; for (int i = 0;i < n;i++) { for (int j = 0;j < m;j++) { cin >> a[i][j]; } } for (int i = 0;i < n;i++) { for (int j = 0;j < m;j++) { if (a[i][j] == 'W') { dfs(i, j); ans++; } } } cout << ans; return 0; }
0.0分
7 人评分
C二级辅导-统计字符 (C语言代码)浏览:528 |
C语言程序设计教程(第三版)课后习题9.4 (Java代码)浏览:1446 |
【亲和数】 (C语言代码)浏览:530 |
WU-格式化数据输出 (C语言代码)浏览:1818 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:689 |
2004年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:1368 |
WU-C语言程序设计教程(第三版)课后习题12.1 (C++代码)浏览:1024 |
用筛法求之N内的素数。 (C语言代码)浏览:711 |
钟神赛车 (C语言代码)浏览:665 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:576 |