首页 > 代码库 > Wetlands of Florida UVA - 469
Wetlands of Florida UVA - 469
题很简单 意思就是 给出某点坐标,看看附近有几个W,附近指的是8个方向,上、下、左、右、左上、左下、右上、右下。
就是输入格式有点麻烦。再一次体会到 sscanf 函数的 强大。
#include <cstdio> #include <cstring> using namespace std; char map[105][105],used[105][105]; int ans; void dfs(int x, int y) { if(x < 0 || y < 0 || map[x][y] == 0) return; if(used[x][y]|| map[x][y] != ‘W‘) return; used[x][y] = 1; ans ++; int i, j; for(i = -1; i <= 1; i++) for(j = -1; j <= 1; j++) dfs(x+i, y+j); } int main() { int t, i, j; char str[105]; scanf("%d ", &t); while(t--) { memset(map,0,sizeof(map)); int n = 0; while(gets(str)) { if(str[0] == ‘\0‘) break; if(str[0] != ‘W‘ && str[0] != ‘L‘) { sscanf(str, "%d %d", &i, &j); // 从当前字符串提取两个数字分别为i,j; memset(used, 0, sizeof(used)); ans = 0; dfs(i-1, j-1); printf("%d\n", ans); } else { sscanf(str, "%s", map[n++]); } } if(t) printf("\n"); // <==> puts(""); } return 0; }
Wetlands of Florida UVA - 469
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。