hdu 杭电 1312 Red and Black
来源:互联网 发布:nginx location 参数 编辑:程序博客网 时间:2024/06/07 09:33
题意:W H分别代表图的列与行,图中有'.' '#' '@' 从@的位置出发最多能搜到多少个‘.’,‘#’为障碍物。
解法:广搜
ac代码:
View Code
#include<iostream>#include<queue>using namespace std;const int M=20+3;char map[M][M];//地图bool use[M][M];//用作标记int v[4][2]={-1,0,0,-1,1,0,0,1};//方向向量:左,上,右,下struct que{ int i,j;};int main(){ int m,n; int i,j; int c,d; int count; queue<que>q; que temp; while(scanf("%d%d",&m,&n)!=EOF&&(m||n)) { getchar(); count=1; memset(use,0,sizeof(use)); for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { scanf("%c",&map[i][j]); if(map[i][j]=='.') use[i][j]=1; //当use[][]==0,说明此点为障碍物,不能走 else if(map[i][j]=='@') { c=i; d=j; } } getchar(); } temp.i=c;temp.j=d; q.push(temp); while(!q.empty()) { use[q.front().i][q.front().j]=0; for(i=0;i<4;i++)//一个点能生出四个点 { c=q.front().i+v[i][0]; d=q.front().j+v[i][1]; if((c>=1&&c<=n)&&(d>=1&&d<=m)&&use[c][d])//判断是否出界及是否为障碍物 { temp.i=c;temp.j=d; q.push(temp); use[c][d]=0; count++; } } q.pop(); } printf("%d\n",count); } return 0;}
0 0
- 杭电 hdu 1312 Red and Black
- hdu 杭电 1312 Red and Black
- 杭电(hdu)ACM 1312 Red and Black
- 杭电 1312 Red and Black
- 杭电 1312 red and black
- 杭电1312 red and black
- 杭电1312 red and black
- 【杭电】[1312]Red and Black
- Red and Black【杭电1312】
- Red and Black hdu 1312
- HDU 1312 Red and Black
- HDU 1312 Red and Black
- hdu 1312 Red and Black
- Hdu 1312 - Red and Black
- hdu-1312-Red and Black
- hdu 1312Red and Black
- hdu 1312 Red and Black
- hdu - 1312 - Red and Black
- html5拖放
- hdu 杭电 1002 A + B Problem II
- 用VLC读取摄像头产生RTSP流,DSS主动取流转发(一)
- xib 布局 代码改变frame
- hdu 杭电 1241 Oil Deposits
- hdu 杭电 1312 Red and Black
- soledede--User-based Rating Prediction(基于用户的评分预测推荐)
- html5之viewport
- matlab中的类标转换程序
- hdu 杭电 2216 Game III
- c++连接hive的一个简单的例子
- hdu 杭电 1262 寻找素数对
- hdu 杭电 1242 Rescue
- svn忽略某个文件的提交,但保留文件(每次checkout时都会生成),修改svn地址,取消某文件夹的忽略: