POJ-2386

来源:互联网 发布:c语言指针指向字符串 编辑:程序博客网 时间:2024/05/11 15:52

最近开始看《挑战程序设计竞赛》这本书,照着书上的题目练练,首先是一道简单dfs,因为以前已经写的比较多了,轻松水过。。

#include<cstdio>using namespace std;namespace{int N, M;char s[100][101];int dir[8][2] = { { -1, 0 }, { 1, 0 }, { 0, -1 }, { 0, 1 }, { -1, -1 }, {-1, 1 }, { 1, -1 }, { 1, 1 } };void dfs(int r, int c){s[r][c] = '.';for (int k = 0; k < 8; k++){int i = r + dir[k][0];int j = c + dir[k][1];if (i >= 0 && i < N && j >= 0 && j < M && s[i][j] == 'W')dfs(i, j);}}void solve(){int ans = 0;for (int i = 0; i < N; i++)for (int j = 0; j < M; j++)if (s[i][j] == 'W'){dfs(i, j);ans++;}printf("%d\n", ans);}}int main(){while (scanf("%d %d", &N, &M) != EOF){for (int i = 0; i < N; i++)scanf("%s", s[i]);solve();}return 0;}


0 0
原创粉丝点击