UVA 572 - Oil Deposits
2014-09-30 11:00
288 查看
图的BFS , 比较简单,注意细节就行。
#include <iostream> #include <cstring> #include <queue> #include <cstdio> #include <algorithm> #include <utility> using namespace std; const int size = 100 + 10; char u[size][size]; char v[size][size]; int d[][2] = { -1 , -1, -1 , 0, -1 , 1, 0 , -1, 0 , 1, 1 , -1, 1 , 0, 1 , 1}; int main() { int m , n; while( (cin >> m >> n) && m && n) { for(int i = 0 ; i < m ; ++i) cin >> (u[i+1] + 1); memset(v , 0 , sizeof(v)); for(int i = 0 ; i <= n+1 ; ++i) { v[0][i] = v[m+1][i] = 1; } for(int i = 0 ; i <= m+1 ; ++i) { v[i][0] = v[i][n+1] = 1; } int cnt = 0; queue< pair<int , int> > q; for(int i = 1 ; i <= m ; ++i) { for(int j = 1 ; j <= n ; ++j) { if(!v[i][j] && u[i][j] == '@') { ++cnt; v[i][j] = 1; q.push(make_pair(i , j)); } while(!q.empty()) { auto t = q.front(); q.pop(); for(int k = 0 ; k < 8 ; ++k) { int x = t.first + d[k][0]; int y = t.second + d[k][1]; if(!v[x][y] && u[x][y] == '@' ) { v[x][y] = 1; q.push(make_pair(x , y)); } } } } } cout << cnt << endl; } return 0; }
相关文章推荐
- UVA 572 Oil Deposits
- UVa572 Oil Deposits(DFS)
- UVa 572 Oil Deposits
- uva-572 - Oil Deposits
- 【DFS】UVA - 572 Oil Deposits
- UVa 572 - Oil Deposits(油田 dfs) 错的离谱的我
- UVA 572-Oil Deposits
- Oil Deposits UVA - 572
- UVa 572 Oil Deposits
- uva 572 Oil Deposits
- UVA 572 Oil Deposits
- uva 572 - Oil Deposits
- uva 572 - Oil Deposits
- UVa 572 - Oil Deposits
- UVA - 572 Oil Deposits
- uva572 Oil Deposits
- UVA572 - Oil Deposits 深搜
- 经典第六章 例题 6-12 UVA 572 Oil Deposits(用DFS求连通块)
- Uva572-poj-1562-hdoj--1241--oil Deposits-DFS
- uva 572 oil deposits——yhx