HihoCoder - 1478 水陆距离(很骚的bfs)
2017-08-09 09:42
363 查看
我的搜索真的很垃圾
我嘴上会说很讨厌这种傻逼求职刷题网站,因为他们的题目都是暴力,单纯恶心的写代码,但是其实我心里明白只是因为我自己菜而已.
hihocoder的题目的题解,都给人一种不专业的感觉,我想不是我的幻觉,这个bfs的题目,我写搜索是真的不会,这篇还是详细一点吧
这题最骚的地方就是他从所有水域开始同时搜,这一点是我以前没有想过的,因为这样就像是病毒扩散,距离永远是最低,如果从每一个陆地开始bfs,就是每一次还要重新置零,效率及其低下了.
我嘴上会说很讨厌这种傻逼求职刷题网站,因为他们的题目都是暴力,单纯恶心的写代码,但是其实我心里明白只是因为我自己菜而已.
hihocoder的题目的题解,都给人一种不专业的感觉,我想不是我的幻觉,这个bfs的题目,我写搜索是真的不会,这篇还是详细一点吧
这题最骚的地方就是他从所有水域开始同时搜,这一点是我以前没有想过的,因为这样就像是病毒扩散,距离永远是最低,如果从每一个陆地开始bfs,就是每一次还要重新置零,效率及其低下了.
/* xzppp */ #include <iostream> #include <vector> #include <set> #include <queue> #include <map> #include <algorithm> #include <stdio.h> #include <string.h> #include <list> #include <math.h> #include <iomanip> using namespace std; #define FFF freopen("in.txt","r",stdin);freopen("out.txt","w",stdout); #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #define MP make_pair typedef long long LL; typedef unsigned long long ULL; const int MAXN = 800; const int INF = 0x7fffffff; const int MOD = 1e9+7; char mp[MAXN+17][MAXN+17]; int ans[MAXN+17][MAXN+17]; int dir[4][2]={-1,0,1,0,0,1,0,-1}; int main() { //FFF int m,n; cin>>n>>m; for (int i = 0; i < n; ++i) scanf("%s",mp[i]); queue <pair<int ,int > > q; for (int i = 0; i < n; ++i) for (int j = 0; j < m; ++j) { if(mp[i][j]=='0') { q.push(MP(i,j)); ans[i][j] = 0; } else ans[i][j] = INF; } while(!q.empty()) { int nx = q.front().first,ny = q.front().second; q.pop(); for (int i = 0; i < 4; ++i) { int gx = nx+dir[i][0],gy = ny+dir[i][1]; if(gx>-1&&gx<n&&gy>-1&&gy<m&&ans[gx][gy]==INF) { ans[gx][gy] = ans[nx][ny]+1; q.push(MP(gx,gy)); } } } for (int i = 0; i < n; ++i) for (int j = 0; j < m; ++j) printf("%d%c",ans[i][j],j==m-1?'\n':' '); return 0; }
相关文章推荐
- 【HIHOCODER 1478】 水陆距离(BFS)
- hiho#1478 : 水陆距离 (BFS)
- HihoCoder - 1478(水陆距离)
- 水陆距离 HihoCoder - 1478
- hihoCoder 1478 水陆距离
- hihoCoder #1478 : 水陆距离
- 水陆距离 搜索BFS
- 【hihocoder [Offer收割]编程练习赛9 B】【水题】水陆距离
- 杭电3085 Nightmare Ⅱ(双向bfs)(曼哈顿距离)
- HihoCoder - 1175 拓扑排序·二 拓扑排序、BFS
- BFS-hihoCoder-第六十六周-Have Lunch Together
- poj2251 三维bfs求最短距离
- 图的广度优先查找(BFS: Breadth -First Search) (1)问题分析 BFS的策略是尽可能广泛地搜索图。它首先访问所有和初始顶点邻接的顶点,然后访问距离它两条边的所有未
- bjoi 2010 矩阵距离 BFS
- 【BFS】【枚举】HihoCoder - 1251 - The 2015 ACM-ICPC Asia Beijing Regional Contest - C - Today Is a Rainy Day
- 经典c程序(0038)---矩阵中两点最短距离BFS
- hihocoder offer收割编程练习赛9 B 水陆距离
- POJ3026 图论(prim方法)+BFS求距离
- 图论-BFS解无权有向图最短路径距离
- hihocoder 1238 实时查询树的所有节点对距离和