HDU 1241 Oil Deposits(DFS)
2015-07-23 16:20
351 查看
题目链接:Click here
题意:油田,给定一个地图,’@’代表油田,’.’代表陆地,如果两个’@’相邻,是一块油田,求所给的图中有几块油田
思路:明显的DFS
题意:油田,给定一个地图,’@’代表油田,’.’代表陆地,如果两个’@’相邻,是一块油田,求所给的图中有几块油田
思路:明显的DFS
#include <iostream> #include <cstring> #include <queue> #include <cstdio> #include <algorithm> #include <cmath> using namespace std; char mapp[105][105]; int dir[8][2] = {{-1, -1}, {0, -1}, {0, 1}, {-1, 0}, {1, 0}, {1, -1}, {1, 1}, {-1, 1}}; int u, v, ans; void DFS(int sx, int sy) { int x, y; for(int i = 0; i < 8; i++) { x = sx + dir[i][0]; y = sy + dir[i][1]; if(x >= 0 && x < u && y >= 0 && y < v && mapp[x][y] == '@') { mapp[x][y] = '*'; DFS(x, y); } } } int main() { while(scanf("%d%d", &u, &v) != EOF) { if(u == 0 && v == 0)break; getchar(); for(int i = 0; i < u; i++) scanf("%s", mapp[i]); ans = 0; for(int i = 0; i < u; i++) { for(int j = 0; j < v; j++) { if(mapp[i][j] == '@') { mapp[i][j] = '*'; DFS(i, j); ans++; } } } printf("%d\n", ans); } return 0; }
相关文章推荐
- 大中华地区最佳WSO2 PaaS 平台解决方案社区 qq群号:229849173
- RegExp对象的使用与正则替换
- 同一页面不同用户分析数据
- Lake Counting(POJ 2386)
- processing图形化编程实例:打飞机游戏
- F.I.S初探(前端工程化)
- 六度分离(floyd算法+dijskra+SPFA)
- 为什么要让我们的“领域模型”裸奔?
- PL/SQL里拼接SQL的查询结果赋值给一个变量
- 支持移动设备的纯Javascript画廊
- 2012年软件大赛校内选拔赛
- linux常用命令
- 暑假集训第二周——贪心 M - 有名的球员
- javascript之处理Ajax错误
- 《ViewPager 详解(二)---详解四大函数》
- Activity 之间 传递 List 封装的对象或者对象
- Codeforces Round #313 (Div. 2) D. Equivalent Strings(简单搜索)
- linux串口相关命令
- java 根据value进行并发同步操作
- Exchange2003中只键入“http://服务器”来名访问OWA