uva 657(dfs)
来源:互联网 发布:上瘾网络剧韩国粉丝 编辑:程序博客网 时间:2024/06/05 00:11
题解:用两个dfs嵌套,先找到 * 然后开始搜索 X ,每访问到一个 X 就用 * 替换,然后把找到的 * 用 . 来替换。
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N = 55;int row, col, flag[3] = {-1, 0, 1}, ans[N], k;char str[N][N];void init() {memset(ans, 0, sizeof(ans));memset(str, 0, sizeof(str));k = 0;}void dfs1(int x, int y) {str[x][y] = '*';int x0, y0;for (int i = 0; i < 3; i++)for (int j = 0; j < 3; j++) {if ((i == 0 && j == 2) || (i == 2 && j == 0) || (i == 0 && j == 0) || (i == 2 && j == 2))continue;x0 = x + flag[i];y0 = y + flag[j];if (x0 < 0 || x0 >= row || y0 < 0 || y0 >= col)continue;if (str[x0][y0] == 'X') {dfs1(x0, y0);}}}void dfs(int x, int y) {str[x][y] = '.';int x0, y0;for (int i = 0; i < 3; i++)for (int j = 0; j < 3; j++) {if ((i == 0 && j == 2) || (i == 2 && j == 0) || (i == 2 && j == 2) || (i == 0 && j == 0))continue;x0 = x + flag[i];y0 = y + flag[j];if (x0 < 0 || x0 >= row || y0 < 0 || y0 >= col)continue;if (str[x0][y0] == 'X') {dfs1(x0, y0);ans[k]++;}if (str[x0][y0] == '*')dfs(x0, y0);}}int main() {int t = 1;while (scanf("%d%d", &col, &row) && (row || col)) {init();for (int i = 0; i < row; i++)scanf("%s", str[i]);for (int i = 0; i < row; i++)for (int j = 0; j < col; j++)if (str[i][j] == '*') {dfs(i, j);k++;}sort(ans, ans + k);printf("Throw %d\n", t++);for (int i = 0; i < k - 1; i++)printf("%d ", ans[i]);printf("%d\n\n", ans[k - 1]);}return 0;}
0 0
- uva 657(dfs)
- 【DFS】UVA
- 【DFS】UVA
- uva 784(dfs)
- dfs uva-297-Quadtrees
- UVA 10318 简单dfs
- uva 11218 KTV(DFS)
- uva 301 Transportation (DFS)
- UVA 185(暴力DFS)
- UVA 11218 - KTV DFS
- uva 1267 - Network(dfs)
- uva 669 - Defragment(dfs)
- uva 10609 - Fractal(dfs)
- uva 784(dfs)
- Oil Deposits uva DFS
- XYZZY uva BFS+DFS
- Bicoloring uva DFS
- uva 795(dfs)
- HDU 2081 手机短号
- 请教大神:输出居中的倒三角形
- poj 1655 Balancing Act 【树的重心】
- 关于从js用Jquery向Action传递值出现中文乱码的问题解决
- delete与delete [] 的区别
- uva 657(dfs)
- 在C#代码中应用Log4Net在Winform、Web和WPF中捕获全局异常
- 【基本知识】重定向,出错处理,管道,时间值
- WEB服务器安装教程:如何安装IIS - WINDOWS XP下IIS的安装教程
- HDU 2082 找单词
- HDU 2110 Crisis of HDU 母函数
- 大数问题(合辑)
- HDU 2083 简易版之最短距离
- HDU 2084 数塔