HDU 1241 Oil Deposits(宽搜)
2015-08-16 16:27
274 查看
//此题其实用深搜和宽搜都是可以的
#include<stdio.h>#include<queue>#include<string.h>#include<iostream>#define MAX 110using namespace std;struct Pos{int x,y;Pos(int xx,int yy):x(xx),y(yy){}};char Maze[MAX][MAX];int flag[MAX][MAX];int dir[8][2]={{-1,0},{-1,-1},{0,-1},{1,-1},{1,0},{1,1},{0,1},{-1,1}};int m,n;void fun(int i,int j){queue<Pos> a;a.push(Pos(i,j));flag[i][j]=1;while(!a.empty()){Pos temp=a.front();for(int k=0;k<8;k++){int Ni=temp.x+dir[k][1];int Nj=temp.y+dir[k][0];
//扩展新的节点if(Ni<0||Nj<0||Ni>=m||Nj>=n)continue;if(Maze[Ni][Nj]=='@'&&flag[Ni][Nj]==0){a.push(Pos(Ni,Nj));flag[Ni][Nj]=1;}}a.pop();}}int main(){while(cin>>m>>n,m||n){memset(flag,0,sizeof(flag));int cnt=0;//getchar();for(int i=0;i<m;i++){for(int j=0;j<n;j++)cin>>Maze[i][j];}for(int i=0;i<m;i++)for(int j=0;j<n;j++)if(Maze[i][j]=='@'&&flag[i][j]==0){fun(i,j);cnt++;}cout<<cnt<<endl;}return 0;}
相关文章推荐
- IOS事件处理编程指南(一)——概要
- SQLite教程
- phpcms v9的一些问题
- C++语言基础 (正在扩充中)
- BZOJ 2005 [Noi2010]能量采集 (容斥)
- [leetcode] Candy
- POJ 3087-Shuffle'm Up(map+模拟)
- js 秒表计时器(开始,停止,清零)
- Android 开源框架Universal-Image-Loader完全解析(四)UNIVERSAL IMAGE LOADER. PART 3---ImageLoader详解
- Google APAC 2016 University Graduates Test(google校招笔试)
- npm模块管理器
- (大数据工程师学习路径)第四步 SQL基础课程----select详解
- 如何加密Url防止被黑
- hdu1003 最大子序列的和
- static 关键字的作用
- hdu 字典树
- Android学习心得(12) --- APK签名keystore
- C++函数的重载、覆盖和隐藏区别
- 中文编码杂谈
- bzoj4199&uoj131: [Noi2015]品酒大会