初学DFS:HDU1241 Oil deposits
来源:互联网 发布:软件研发公司 编辑:程序博客网 时间:2024/05/19 04:29
这题做了几小时,怪自己粗心
注意题目给出的最后一组数据M后面多了一个空格,不要直接复制,我就是直接复制过来写成文件调试,坑死了
#include <iostream>#include <cstdio>#include <cstring>//#define testusing namespace std;char vis[105][105];int cnt;int M,N;int dir[8][2] = {{0,1},{1,0},{-1,0},{0,-1},{1,1},{-1,1},{1,-1},{-1,-1}};void dfs(int x,int y){ vis[x][y]='*'; //printf("%d %d\n",x,y); int xx,yy; for(int i=0; i<8; i++) { xx=x+dir[i][0]; yy=y+dir[i][1]; if(xx>M||yy>N||xx<1||yy<1||vis[xx][yy]=='*') continue; if(vis[xx][yy]=='@') dfs(xx,yy); } return;}int main(){ //fp=fopen("out.txt","w"); while(scanf("%d %d",&M,&N)!=EOF) { getchar(); if(M==0||N==0) break; for(int i=1; i<=M; i++) { for(int j=1; j<=N; j++) scanf("%c",&vis[i][j]); getchar();//get the char '\n' }#ifdef test for(int i=1; i<=M; i++) { for(int j=1; j<=N; j++) printf("%c",vis[i][j]); printf("\n"); }#endif cnt=0; for(int i=1; i<=M; i++) for(int j=1; j<=N; j++) if(vis[i][j]=='@') { cnt++; dfs(i,j); } printf("%d\n",cnt); //memset(vis,0,sizeof(vis)); } return 0;}
0 0
- 初学DFS:HDU1241 Oil deposits
- Oil Deposits hdu1241 dfs
- HDU1241:Oil Deposits(DFS)
- hdu1241(DFS Oil Deposits )
- HDU1241:Oil Deposits(DFS)
- HDU1241 Oil Deposits DFS
- HDU1241 Oil Deposits DFS
- HDU1241 Oil Deposits 【DFS】
- dfs hdu1241 Oil Deposits
- HDU1241:Oil Deposits(DFS)
- HDU1241 Oil Deposits(dfs)
- HDU1241 Oil Deposits(DFS)
- hdu1241 Oil Deposits(dfs)
- HDU1241 Oil Deposits【dfs&bfs】
- 【DFS&BFS】HDU1241-Oil Deposits
- HDU1241 Oil Deposits(深搜DFS)
- HDU1241 Oil Deposits 解题报告--dfs
- UVA572 HDU1241 POJ1562 Oil Deposits【DFS】
- NodeJS优缺点及适用场景讨论
- JAVA集合 笔记
- 类的构造函数和析构函数
- 鸟哥Java学习之异常-面向对象
- tikz-path
- 初学DFS:HDU1241 Oil deposits
- MySQL存储引擎InnoDB与Myisam的六大区别
- Scalaz(42)- Free :FreeAp-Applicative Style Programming Language
- 常用的配置文件
- 框架和设计模式的区别
- CSS-边距
- 制作窗口
- 循环队列
- 阿里云ECS(linux)添加ftp用户_并设置权限