第一个独立的小岛数
来源:互联网 发布:菜鸟网络盈利模式 编辑:程序博客网 时间:2024/04/29 23:26
#include<stdio.h>int a[51][51],n,m,sum,book[51][51];void dfs(int x,int y,int color){ int tx,ty,k; int next[4][2]= {{0,1}, //向右走 {1,0}, //向下走 {0,-1}, //向左走 {-1,0} }; //向上走 a[x][y]=color; //对a[x][y]这个格子进行染色 for(k=0; k<4; k++) { tx=x+next[k][0]; ty=y+next[k][1]; //判断是否越界 if(tx<1||tx>n||ty<1||ty>m) continue; //判断是否是陆地 if(a[tx][ty]>0&&book[tx][ty]==0) { sum++; book[tx][ty]=1; //标记这个点已经走过 dfs(tx,ty,color); //开始尝试下一个点 } } return;}int main(){ int i,j,num=0; scanf("%d%d",&n,&m); //读入地图 for(i=1; i<=n; i++) for(j=1; j<=m; j++) scanf("%d",&a[i][j]); //对每一个大于0的点进行dfs染色 for(i=1; i<=n; i++) for(j=1; j<=m; j++) { if(a[i][j]>0) { num--; book[i][j]=1; dfs(i,j,num); } } //输出染色后的地图 for(i=1; i<=n; i++) for(j=1; j<=m; j++) { printf("%3d ",a[i][j]); //%3中的3是C语言中的场宽 } printf("\n"); //输出小岛的个数 printf("有%d个小岛\n",-num); return 0;}
0 0
- 第一个独立的小岛数
- 《第一个独立开发项目的完结》
- 第一个出现的数
- 第一个独立Android App
- Missing Number 第一个缺失的数
- 我的第一个独立创作的企业级作品——LV网站
- POJ 1702 怎么就TLE了 还是纪念一下 第一个独立完成的递归
- 独立完成的第一个c程序,虽然很简单,但是一个开始
- 今天的第一个练习---求两个数的最大公约数
- 1548_猪数 第一个AC的程序~~
- 寻找第一个因数个数超过500的三角数
- C#第一个程序 输出所有的水仙花数
- 找出数组中第一个重复出现的数
- 第一个c++程序:计算两个数的和
- 找到第一个只出现一次的数
- 数独100*100的第一个结果 sudoku100*100
- HDU2084数塔(人生的第一个DP题)
- 第一个NDK小程序之两个数的加法
- Dijkstra-算法-----单源最短路
- listView系列之分多种布局显示
- Android Input系统介绍与kcm与kl文件的定制
- 百度富文本编辑器的使用
- 城市最短路径
- 第一个独立的小岛数
- python 正则表达式
- 数据密集型系统架构设计
- 安卓应用底部菜单栏+fragment
- ubuntu下用postfix搭建邮件服务器
- tomcat6 中context配置,使用tomcat 数据源
- javaScript键盘触发事件(仅个人学习)
- 堆--神奇的优先队列
- Windows下使用命令行查看端口号被哪个进程占用