hdu2612 Find a way 广搜
来源:互联网 发布:xampp mysql登陆 编辑:程序博客网 时间:2024/05/04 22:15
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2612
题意: 有Y,M两个人,和若干个目的地“@”,求两个人到同一个“@”的最小时间(两个人到“@”的时间之和)。
第一次做这道的时候错了,因为没有考虑到下面这种情况
3 3
Y#@
.M#
@..
根据我的计算方法;这样输出的是0而不是44;随后根据我的计算时间的方法改了一下,AC;
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<queue>using namespace std;int N,M,vism[205][205],visy[205][205],step[205][205];char map[205][205];struct node{int y,x,step,who;}y,m,ic,tmp;int fx[4][2]={{0,1},{0,-1},{-1,0},{1,0}};void bfs(){memset(vism,0,sizeof(vism));memset(visy,0,sizeof(visy));//memset(step,0,sizeof(step));memset(step,-1,sizeof(step));queue<node>q;q.push(y),q.push(m);visy[y.y][y.x]=1;vism[m.y][m.x]=1;while(!q.empty()){ic=q.front();q.pop();if(map[ic.y][ic.x]=='@'){step[ic.y][ic.x]+=ic.step;}for(int i=0;i<4;++i){tmp.y=ic.y+fx[i][1];tmp.x=ic.x+fx[i][0];tmp.step=ic.step+1;tmp.who=ic.who;if(map[tmp.y][tmp.x]=='#'||tmp.y<0||tmp.x<0||tmp.y>=N||tmp.x>=M)continue;if(tmp.who){if(visy[tmp.y][tmp.x])continue;else visy[tmp.y][tmp.x]=1;}else { if(vism[tmp.y][tmp.x])continue;else vism[tmp.y][tmp.x]=1;}q.push(tmp);}}}int main(){while(cin>>N>>M){for(int i=0;i<N;++i){scanf("%s",&map[i]);for(int j=0;j<M;++j){if(map[i][j]=='Y'){y.y=i;y.x=j;y.step=0;y.who=1; }if(map[i][j]=='M'){m.y=i;m.x=j;m.step=0;m.who=0;}}}bfs();int ans=1e9;for(int i=0;i<N;++i) for(int j=0;j<M;++j) if(map[i][j]=='@'&&step[i][j]!=-1&&step[i][j]<ans) ans=step[i][j];cout<<(ans+1)*11<<endl;}}
0 0
- hdu2612 Find a way 广搜
- Find a way hdu2612
- HDU2612---Find a way
- hdu2612---Find a way
- HDU2612 Find a way
- Hdu2612 Find a way
- HDU2612 Find a way
- HDU2612-Find a way
- HDU2612 find a way
- HDU2612-Find a way
- HDU2612 (Find a way)
- [bfs]HDU2612 Find a way
- HDU2612 Find a way BFS
- HDU2612(Find a way)搜索-两次BFS
- hdu2612——Find a way
- hdu2612 Find a way( bfs )
- hdu2612 Find a way--BFS & 打表
- hdu2612 Find a way(BFS)
- Java之学习笔记(前言)
- 怎样让父视图的透明度不影响子视图
- 从零开始学Android(〇)
- discuz核心函数库function_core的函数注释
- POJ-----3278BFS
- hdu2612 Find a way 广搜
- 题目263 精挑细选
- 十四、HDFS在分布式系统中的应用(上)
- Android基础--ViewPager的PagerAdapter的介绍
- listview滑动置顶效果
- 一张图学懂css+div 浮动分块
- Java ThreadLocal使用浅析
- tcp 三次握手和四次断连深入分析:连接状态和socket API的关系
- cisco vpp NAT VLAN支持