hdu DFS 1312

来源:互联网 发布:最好用的知天气 编辑:程序博客网 时间:2024/06/06 12:47

继续水深搜。

和昨天的题目一样样的。只是只有四个方向了而已。


AC代码:

#include<iostream>using namespace std;#define MAXN 25int h, l,rec[MAXN][MAXN],vis[MAXN][MAXN],num;void dfs(int i,int j){if (rec[i][j] == 0 || vis[i][j] == 1){return;}num++;vis[i][j] = 1;dfs(i - 1, j);dfs(i + 1, j);dfs(i, j - 1);dfs(i, j + 1);}int main(){//freopen("TestDate.txt", "r", stdin);int i, j,si,sj;char ch;while (cin >> l >> h && (h != 0 && l != 0)){memset(rec, 0, sizeof(rec));memset(vis, 0, sizeof(vis));for (i = 1; i <= h; i++){for (j = 1; j <= l; j++){cin >> ch;if (ch == '.'){rec[i][j] = 1;}else if (ch == '#'){rec[i][j] = 0;}else if (ch == '@'){rec[i][j] = 2;si = i;sj = j;}}}num = 0;dfs(si, sj);cout << num << endl;}return 0;}


1 0
原创粉丝点击