poj 1562 Oil Deposits(dfs)
2016-05-02 19:24
399 查看
题意:给一个图,判断有多少块油田(8个方向相邻为一块)
code:
code:
#include <stdio.h> #include <string.h> int m,n; int res,dir[8][2]={-1,-1,-1,0,-1,1,0,-1,0,1,1,-1,1,0,1,1}; char map[100][100]; void dfs(int a,int b) { int i,x,y; map[a][b]='*'; for(i=0;i<8;i++) { x=a+dir[i][0]; y=b+dir[i][1]; if(x>=0&&x<m&&y>=0&&y<n&&map[x][y]=='@') //应为下标边界为0,所以坐标移动的时候会出现负数的情况,这里多加了几个条件判断 dfs(x,y); } } int main() { int i,j; while(scanf("%d%d",&m,&n)&&m&&n) { memset(map,0,sizeof(map)); res=0; for(i=0;i<m;i++) scanf("%s",map[i]); for(i=0;i<m;i++) for(j=0;j<n;j++) { if(map[i][j]=='@') { res++; dfs(i,j); } } printf("%d\n",res); } return 0; }
相关文章推荐
- jsp集成markdown编辑器
- WebService核心文件【server-config.wsdd】详解及调用示例
- SharedPreference.Editor 的 apply() 和 commit() 的区别
- 正则表达式——Regular Expression
- 优先队列
- Android自定义属性
- C# winform中文本框限制只能输入数字和字母,退格键
- 完美长方体是不可能存在的 第三章
- hdu 5676 ztr loves lucky numbers(dfs+离线)
- awk对数据排序实例
- AppCode的使用
- 最大值与最小值比较问题新解
- Linux内核抢占机制 - 实现
- DeepLearnToolbox及CNN代码实现
- nyoj 499 迷宫(dfs)
- [c++].类型转换
- POJ 1125 单源最短路 dijkstra的算法初步探索
- [Nutch]Solr命令的使用
- 福州大学第十三届程序设计竞赛_重现 F 牧场物语
- Linux内存管理学习笔记 转