zoukankan      html  css  js  c++  java
  • Oil Deposits HDU

    题目链接:https://cn.vjudge.net/problem/HDU-1241

    注意:搜索八个方向

     1 #include <iostream>
     2 #include <cstring>
     3 #include <cstdio>
     4 #include <queue>
     5 #include <stack>
     6 #include <algorithm>
     7 #include <cmath>
     8 #include <map>
     9 #define mem(a,b) memset(a,b,sizeof(a));
    10 using namespace std;
    11 #define INF 0x3f3f3f3f
    12 typedef long long ll;
    13 int dir[8][2] = {0,1,0,-1,1,0,-1,0,1,-1,1,1,-1,1,-1,-1};
    14 const int maxn = 5000005;
    15 int r,c,vis[105][105];
    16 string s[105];
    17 struct node{
    18     int x,y;
    19     node(int x1,int y1):x(x1),y(y1){};
    20 };
    21 void bfs(int x,int y) {
    22     queue<node>q;
    23     vis[x][y] = 1;
    24     q.push(node(x,y));
    25     while(!q.empty()) {
    26         node temp = q.front();
    27         q.pop();
    28         for(int i = 0; i < 8; i++) {
    29             int fx = temp.x + dir[i][0],fy = temp.y + dir[i][1];
    30             if(fx >=0 && fx < r && fy >=0 && fy < c && !vis[fx][fy] && s[fx][fy] == '@')
    31             {
    32                 vis[fx][fy] = 1;
    33                 q.push(node(fx,fy));
    34             }
    35         }
    36     }
    37 }
    38 int main()
    39 {
    40     while(cin >> r >> c && r &&  c) {
    41         mem(vis,0);
    42         for(int i = 0; i < r; i++) {
    43             cin >> s[i];
    44         }
    45         int ans = 0;
    46         for(int i = 0; i < r; i++) {
    47             for(int j = 0; j < c; j++) {
    48                 if(s[i][j] == '@' && !vis[i][j]) {
    49                     bfs(i,j);
    50                     ans++;
    51                 }
    52             }
    53         }
    54         cout << ans << endl;
    55     }
    56     return 0;
    57 }
  • 相关阅读:
    【leetcode】下一个排列
    【leetcode】配对交换
    【leetcode】两个相同字符之间的最长子字符串
    052-126&127
    052-125
    052-124
    052-123
    052-122
    052-121
    052-120
  • 原文地址:https://www.cnblogs.com/LLLAIH/p/11376865.html
Copyright © 2011-2022 走看看