ZOJ 1709 Oil Deposits
来源:互联网 发布:js div style display 编辑:程序博客网 时间:2024/06/06 00:27
ZOJ 1709 Oil Deposits
题意:给出图中存在的字符数,给出图中字符的图示,如果代表油田的字符它的上面、下面、左面、右面或者和它成45度角的邻接位置上存在油田,可以认为这两个油田是连着的,所以问这个图中存在几个不相连的油田。
做过的最简单的递归题,深搜的思路,和棋盘跳马如出一辙,而且就只需要记录搜索的次数。
细节+代码:
#include<stdio.h>#include<string.h>char a[200][200]; /*全局。*/int b[200][200];int find(int x,int y){int k,x1,y1;for(k=1;k<=8;k++){ switch(k){case 1:x1=x;y1=y+1;break; case 2:x1=x+1;y1=y+1;break; case 3:x1=x+1;y1=y;break; case 4:x1=x+1;y1=y-1;break; case 5:x1=x;y1=y-1;break; case 6:x1=x-1;y1=y-1;break; case 7:x1=x-1;y1=y;break; case 8:x1=x-1;y1=y+1;break;}if(b[x1][y1]==0&&a[x1][y1]=='@'){b[x1][y1] = 1;find(x1,y1);}}return 0;}int main(){int i,j,k,m,n,count;for(i = 1;;i++){count = 0;memset(b,0,sizeof(b)); /*函数。*/scanf("%d%d",&m,&n);if(m==0)break;getchar();for(j = 0;j<=m-1;j++)scanf("%s",a[j]);for(j = 0;j<=m-1;j++){for(k = 0;k<=n-1;k++){if(a[j][k]=='@'&&b[j][k]==0){b[j][k] = 1;count++;find(j,k);}}}printf("%d\n",count);}return 0;}
- zoj 1709 Oil Deposits
- zoj 1709 Oil Deposits
- ZOJ 1709 Oil Deposits
- ZOJ 1709 Oil Deposits
- zoj 1709 Oil Deposits
- zoj 1709 Oil Deposits
- ZOJ 1709 Oil Deposits
- ZOJ - 1709 Oil Deposits
- ZOJ Problem Set - 1709 Oil Deposits
- poj 1562 || zoj 1709 Oil Deposits(DFS)
- ZOJ Problem Set - 1709 Oil Deposits
- ZOJ 1709 Oil Deposits(油田问题DFS)
- ZOJ 1709 Oil Deposits(DFS)
- zoj 1562 Oil Deposits (DFS)
- zoj 1709 || poj 1562 Oil Deposits(DFS 好吧,目前我就是专门找水题做的。。。)
- Oil Deposits
- Oil Deposits
- Oil Deposits
- windows 服务编程
- Mac 安装Qt5.1编译出现的错误解决
- php排序算法之选择排序
- SQLite判断表存在的方法——我的解决方案(MFC)
- tomcat启动不了(javajni.c] [error] 找不到指定的模块)
- ZOJ 1709 Oil Deposits
- Android组件 文字标签(TextView)
- Oracle evl 函数使用
- 配置Apache服务器的出现The request operation has failed解决方法
- 怎样学习MSP430单片机
- Ubuntu12.04安装vim7.3
- php算法之快速排序
- Qt编程—去掉标题栏和设置窗口透明用法
- 如何将IE10降到IE9