uva 784

来源:互联网 发布:金十数据手机安卓版 编辑:程序博客网 时间:2024/04/30 14:13

首先找到墨水

把它变为#

先判断它的上下左右是否为空

如果是dfs


一开始想当然的认为碰到X就返回

是错的

只要它周围的四个点为空

都可以dfs下去



#include <stdio.h>#include <string.h>char map[50][100];void dfs(int x, int y){map[x][y] = '#';if (map[x - 1][y] == ' ')dfs(x - 1, y);if (map[x][y - 1] == ' ')dfs(x, y - 1);if (map[x + 1][y] == ' ')dfs(x + 1, y);if (map[x][y + 1] == ' ')dfs(x, y + 1);}int main(){int n;scanf("%d", &n);getchar();while (n > 0){int cnt = 0, len, l = 0;while (gets(map[cnt++])) {len = strlen(map[cnt - 1]);if (len > l)l = len;if (map[cnt - 1][0] == '_')break;}for (int i = 1; i < cnt; i++)for (int j = 1; j < l; j++)if (map[i][j] == '*') dfs(i, j);for (int i = 0; i < cnt; i++)puts(map[i]);n--;}return 0;}


0 0
原创粉丝点击