• 【HDOJ】2645 find the nearest station


    裸BFS。

     1 /* 2645 */
     2 #include <iostream>
     3 #include <queue>
     4 #include <cstdio>
     5 #include <cstring>
     6 #include <cstdlib>
     7 using namespace std;
     8 
     9 #define MAXN 200
    10 
    11 typedef struct node_t {
    12     int x, y;
    13     node_t() {}
    14     node_t(int xx, int yy) {
    15         x = xx; y = yy;
    16     }
    17 } node_t;
    18 
    19 int n, m;
    20 queue<node_t> Q;
    21 char map[MAXN][MAXN];
    22 int dist[MAXN][MAXN];
    23 int dir[4][2] = {
    24     -1,0,1,0,0,-1,0,1
    25 };
    26 
    27 void bfs() {
    28     int i, j, k;
    29     int x, y;
    30     node_t nd;
    31     
    32     while (!Q.empty()) {
    33         nd = Q.front();
    34         Q.pop();
    35         for (i=0; i<4; ++i) {
    36             x = nd.x + dir[i][0];
    37             y = nd.y + dir[i][1];
    38             if (x<0 || x>=n || y<0 || y>=m || map[x][y]=='1')
    39                 continue;
    40             map[x][y] = '1';
    41             dist[x][y] = dist[nd.x][nd.y] + 1;
    42             Q.push(node_t(x, y));
    43         }
    44     }
    45 }
    46 
    47 int main() {
    48     int i, j, k;
    49     
    50     #ifndef ONLINE_JUDGE
    51         freopen("data.in", "r", stdin);
    52     #endif
    53     
    54     while (scanf("%d %d", &n, &m) != EOF) {
    55         for (i=0; i<n; ++i) {
    56             scanf("%s", map[i]);
    57             for (j=0; j<m; ++j) {
    58                 if (map[i][j] == '1') {
    59                     Q.push(node_t(i, j));
    60                     dist[i][j] = 0;
    61                 }
    62             }
    63         }
    64         bfs();
    65         for (i=0; i<n; ++i) {
    66             printf("%d", dist[i][0]);
    67             for (j=1; j<m; ++j)
    68                 printf(" %d", dist[i][j]);
    69             printf("
    ");
    70         }
    71     }
    72     
    73     return 0;
    74 }
  • 相关阅读:
    okHttp源码解析------待续
    AS: Unsupported method: AndroidProject.getPluginGeneration().
    vue项目根据不同环境调用不同请求地址
    文字跑马灯(无缝衔接) CSS+JS完美实现
    data 和 computed 的区别
    ES6解构赋值
    flex布局
    token验证
    vue组件传值
    vue钩子函数
  • 原文地址:https://www.cnblogs.com/bombe1013/p/4291887.html
Copyright © 2020-2023  润新知