poj 1562 (bfs)
来源:互联网 发布:玩客云 淘宝众筹 编辑:程序博客网 时间:2024/06/08 00:46
这道题用bfs和和dfs都差不多,有一点我觉得很有必要说一下,由于这个错我调试了好半天!!,就是在输入的时候可以有多个空格,但我以为只有一个空格!
#include<stdio.h>#include<stdlib.h>#include<string.h>struct ff{ int x; int y;}ff[100000];int m,n,map[105][105];//map[i][j]为标记数组 int dit[8][2]={{-1,-1},{-1,0},{-1,1},{0,-1},{0,1},{1,-1},{1,0},{1,1}};char ch;int h1,h2,sum; //sum:oil的个数 int main(){ int i,j,p,vx,vy; while(scanf("%d %d",&m,&n)!=EOF&&m) { //getchar();//过滤换行符 memset(map,0,sizeof(map)); sum=0; for(i=1;i<=m;i++) { for(j=1;j<=n;j++) { while(ch=getchar(),ch!='*'&&ch!='@');//在此要注意有多个空格 //printf("%d %d c=%c\n",i,j,str[i][j]); if(ch=='*')map[i][j]=1; } getchar(); } //for(i=1;i<=m;i++) //{ //for(j=1;j<=n;j++) //printf("%c ",str[i][j]); //printf("\n"); //} //for(i=1;i<=m;i++) //{ //for(j=1;j<=n;j++) //printf("%d ",map[i][j]); //printf("\n"); //} for(i=1;i<=m;i++) //bfs for(j=1;j<=n;j++) { if(!map[i][j]) { //printf("%d %d\n",i,j); //printf("------\n"); sum++; h1=0; h2=1; ff[0].x=i; ff[0].y=j; while(h1<h2) { for(p=0;p<8;p++) { vx=ff[h1].x+dit[p][0]; vy=ff[h1].y+dit[p][1]; if(vx>=1&&vx<=m&&vy>=1&&vy<=n&&!map[vx][vy]) { //printf("&&&&%d %d\n",vx,vy); map[vx][vy]=1; ff[h2].x=vx; ff[h2++].y=vy; } } //for h1++; }//while }//if }//for printf("%d\n",sum); }//while system("pause");return 0;}
0 0
- poj 1562 (bfs)
- [BFS] poj
- poj 1562Oil Deposits( BFS DFS)
- poj 1562 简单的BFS搜索
- POJ 1562/HDU 1241 Oil Deposits(BFS)
- POJ 1562-Oil Deposits(BFS)
- poj 3626 简单bfs
- POJ 3278 : 经典BFS
- poj 3126 简单bfs
- poj 3278 简单bfs
- poj 2243 bfs
- poj 1856 bfs
- POJ 3697 BFS暴力
- POJ 2251 BFS
- poj 3278 bfs
- POJ 3414 Pots BFS
- poj 3278、、、BFS
- poj--2243 BFS
- 安装完PHP后,增加扩展模块 phpize
- 两大数相乘 -- javascript 实现
- 浅谈如何减小汽车发动机舱的异常噪声过大
- 一个人的项目组
- C++虚继承研究-1
- poj 1562 (bfs)
- shell脚本时间操作
- CloudStack 4.2安装文档(Agent)
- Jquery Aajx异步提交系列
- Hadoop的实质是什么
- IOS 推送机制详解,兼容IOS8的推送
- 学徒浅析Android开发:第七讲——数据存储之SharedPreferences
- LeetCode: Largest Rectangle in Histogram [084]
- 指尖上的幸福