hdu 2645 find the nearest station
来源:互联网 发布:linux fdisk 编辑:程序博客网 时间:2024/06/01 09:14
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2645
bfs爆搜。。
#include<algorithm>#include<iostream>#include<cstdlib>#include<cstring>#include<cstdio>#include<vector>#include<queue>#include<map>using std::cin;using std::cout;using std::endl;using std::find;using std::sort;using std::pair;using std::queue;using std::vector;#define pb(e) push_back(e)#define sz(c) (int)(c).size()#define mp(a, b) make_pair(a, b)#define all(c) (c).begin(), (c).end()#define iter(c) decltype((c).begin())#define cls(arr,val) memset(arr,val,sizeof(arr))#define cpresent(c, e) (find(all(c), (e)) != (c).end())#define rep(i, n) for (int i = 0; i < (int)(n); i++)#define tr(c, i) for (iter(c) i = (c).begin(); i != (c).end(); ++i)const int N = 190;typedef unsigned long long ull;namespace work { struct Node { int x, y, s; Node(int i = 0, int j = 0, int k = 0) :x(i), y(j), s(k) {} }; bool map[N][N], vis[N][N]; const int dx[] = { 0, 0, -1, 1 }, dy[] = { -1, 1, 0, 0 }; int n, m, res[N][N]; inline int bfs(int x, int y) { cls(vis, false); queue<Node> que; que.push(Node(x, y, 0)); vis[x][y] = true; while (!que.empty()) { Node t = que.front(); que.pop(); if (map[t.x][t.y]) return t.s; rep(i, 4) { int nx = dx[i] + t.x, ny = dy[i] + t.y; if (nx < 0 || nx >= n || ny < 0 || ny >= m || vis[nx][ny]) continue; que.push(Node(nx, ny, t.s + 1)); } } return 0; } inline void solve() { char buf[N]; while (~scanf("%d %d", &n, &m)) { rep(i, n) { scanf("%s", buf); rep(j, m) map[i][j] = buf[j] - '0' & 1; } rep(i, n) { rep(j, m) res[i][j] = map[i][j] ? 0 : bfs(i, j); } rep(i, n) { rep(j, m) printf("%d%c", res[i][j], j < m - 1 ? ' ' : '\n'); } } }}int main() {#ifdef LOCAL freopen("in.txt", "r", stdin); freopen("out.txt", "w+", stdout);#endif work::solve(); return 0;}
0 0
- hdu 2645 find the nearest station
- HDOJ 2645 find the nearest station (BFS)
- hdu2645 find the nearest station(BFS)
- Find a nearest station
- recommended to choose the nearest exit highway toll station in advance.
- hdu 2448 Mining Station on the Sea
- HDU 2448 Mining Station on the Sea
- HDU Find the hotel
- hdu 2448 Mining Station on the Sea //floyed+km算法
- 2008 Asia Regional Beijing hdu 2485 destroying the bus station
- 【HDU】 2448 Mining Station on the Sea 费用流
- HDU 2448 Mining Station on the Sea(Floyd+最优匹配)
- HDU 2448 Mining Station on the Sea(费用流)
- HDU 2448 Mining Station on the Sea 费用流
- hdu 2448 Mining Station on the Sea【网络费用流】
- Mining Station on the Sea (hdu 2448 SPFA+KM)
- HDU 2448 Mining Station on the Sea 最短路+KM
- HDU 2448 Mining Station on the Sea(Floyd+最优匹配)
- Hibernate 缓存机制
- iOS开发拓展篇—封装音频文件播放工具类
- 这一个月闲的
- 【C语言】求两个数中不同的位的个数
- UltraISO U盘启动安装工具
- hdu 2645 find the nearest station
- Postback回发事件的真实感触
- 【java0009】多线程同步代码块和同步函数
- 【转】Windows CALLBACK 函数
- GRBL三:gcode代码解析
- android解决无法设定listview的item高度(设置行高)
- iOS开发拓展篇—CoreLocation简单介绍
- Chrome developer tool介绍(javascript调试)
- 百度map android sdk3.5实现定位 并跳转的指定坐标,添加标记