杭电1241 oil deposit
来源:互联网 发布:3g模型 淘宝 编辑:程序博客网 时间:2024/04/30 12:44
Oil Deposits
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 11002 Accepted Submission(s): 6410Problem DescriptionThe GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.InputThe input file contains one or more grids. Each grid begins with a line containing m and n, the number of rows and columns in the grid, separated by a single space. If m = 0 it signals the end of the input; otherwise 1 <= m <= 100 and 1 <= n <= 100. Following this are m lines of n characters each (not counting the end-of-line characters). Each character corresponds to one plot, and is either `*', representing the absence of oil, or `@', representing an oil pocket.OutputFor each grid, output the number of distinct oil deposits. Two different pockets are part of the same oil deposit if they are adjacent horizontally, vertically, or diagonally. An oil deposit will not contain more than 100 pockets.Sample Input1 1*3 5*@*@***@***@*@*1 8@@****@*5 5 ****@*@@*@*@**@@@@*@@@**@0 0Sample Output0122
#include<stdio.h>#include<string.h>char map[101][101];int dx[8]={-1,1,0,0,1,1,-1,-1},dy[8]={0,0,1,-1,1,-1,1,-1};int n,m,visit[101][101];void dfs(int xx,int yy){ int x,y,l; for(l=0;l<8;l++) { x=xx+dx[l]; y=yy+dy[l]; if(x>=0&&x<m&&y>=0&&y<n&&map[x][y]=='@'&&visit[x][y]==0) { visit[x][y]=1; dfs(x,y); } } }main(){ int i,j,de; while(scanf("%d%d",&m,&n),m!=0) { de=0; getchar(); for(i=0;i<m;i++) { for(j=0;j<n;j++) scanf("%c",&map[i][j]); getchar(); } memset(visit,0,sizeof(visit)); for(i=0;i<m;i++) { for(j=0;j<n;j++) if(map[i][j]=='@'&&visit[i][j]==0) { de++; visit[i][j]=1; dfs(i,j); } } printf("%d\n",de);}}
0 0
- 杭电1241 oil deposit
- Oil Deposit
- Oil Deposit
- 杭电1241-Oil Deposits
- 杭电1241 Oil Deposits
- 杭电1241Oil Deposits
- 【杭电】[1241]Oil Deposits
- 杭电1241 Oil Deposits
- 杭电 1241 Oil Deposits
- SDJZU-Oil Deposit
- 题目1460:Oil Deposit
- PKU 1562 Oil Deposit
- 题目1460:Oil Deposit
- 题目1460:Oil Deposit
- 杭电 hdu 1241 Oil Deposits
- Oil Deposits HDU杭电1241
- 杭电 1241 Oil Deposits 递归 DFS
- 杭电(hdu)1241 Oil Deposits
- Java基础学习中,关于面向对象中多态、抽象类、接口的总结
- maven项目启动报错
- Lucas–Kanade
- GridView实现多表头合并,解决表头数据对不齐
- 杭电1010
- 杭电1241 oil deposit
- 杭电1312 red and black
- poj3278 catch that cow
- 杭电1242 rescue
- hdu 1253 胜利大逃亡
- 设计模式(四)之命令模式
- 杭电1863+1879
- hdu1102 constructing road
- hdu1863(prim)