UVA - 572 Oil Deposits
来源:互联网 发布:天津大学网络教学 编辑:程序博客网 时间:2024/06/11 11:33
题目大意:找出有多少块 @,八个方向相邻就算相连。
解题思路:用一个数组 num 标记该 @ 是否被查找过,若有则返回,八个方向递归查找相邻的 @。统计进入了几次 dfs
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<algorithm>char map[150][150];int num[150][150];int cnt, m, n;void dfs(int r, int c, int cn) { if (r < 0 || r >= m || c < 0 || c >= n) return; if (map[r][c] != '@' || num[r][c]) return; num[r][c] = cn; dfs(r-1, c-1, cn); dfs(r-1, c, cn); dfs(r-1, c+1, cn); dfs(r, c-1, cn); dfs(r, c, cn); dfs(r, c+1, cn); dfs(r+1, c-1, cn); dfs(r+1, c, cn); dfs(r+1, c+1, cn);}int main() { while (scanf("%d%d", &m, &n) != EOF && m) { cnt = 0; memset(num, 0, sizeof(num)); for (int i = 0; i < m; i++) scanf("%s", map[i]); for (int i = 0; i < m; i++) for (int j = 0; j < n; j++) if (map[i][j] == '@' && !num[i][j]) dfs(i, j, ++cnt); printf("%d\n", cnt); }}
在家水了一周多,回校第一题。参考小紫。
0 0
- 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
- uva 572Oil Deposits
- UVa 572Oil 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
- uva 572 - Oil Deposits
- UVa 572 - Oil Deposits
- UVA 572 Oil Deposits
- POJ 3255 Roadblock(SPFA寻找次短路)
- 欢迎使用CSDN-markdown编辑器
- 网络流 (费用流+拆边)——Transportation ( HDU 3667 )
- 修改tomcat命令行窗口名称
- C++primer plus 第11-12章笔记
- UVA - 572 Oil Deposits
- 通过TortoiseGit上传项目到GitHub
- 大数四则运算的C++实现
- 蓝鸥 8.10
- Lucas定理与扩展Lucas
- 应用里的用户头像是怎样更改的?
- leetcode(368):Largest Divisible Subset
- mashen8.10--作业
- a 标签中调用js的几种方法