hdu 1548 简单的bfs
来源:互联网 发布:mac怎么打包照片 编辑:程序博客网 时间:2024/05/12 16:30
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1548
自己写的第一个bfs的题目
题意:电梯每层有一个不同的数字,例如第n层有个数字k,那么这一层只能上k层或下k层,但是不能低于一层或高于n层,给定起点与终点,要求出最少要按几次键思路:一开始的想法是搜索,而且搜索也是可行的,不过既然这道题出在了最短路的专题里面,自然也要尝试下最短路的做法,要注意的是,这道题是单向边,我们只要让map里面的值全部为1就可以统计次数了代码:#include<algorithm>#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<iostream>#include<queue>using namespace std;int n,s,e;int step[205];int vis[205];int a[205];int head,ne;int BFS(){ queue<int>q; q.push(s); vis[s]=1; step[s]=0; while(!q.empty()) { head=q.front(); q.pop(); for(int i=0; i<2; i++) { if(i==0) ne=head+a[head]; else ne=head-a[head]; if(ne<1||ne>n) continue; if(!vis[ne]) { q.push(ne); vis[ne]=1; step[ne]=step[head]+1; } if(ne==e) return step[ne]; } } return -1;}int main(){ while(scanf("%d",&n)!=EOF) { memset(vis,0,sizeof(vis)); memset(step,0,sizeof(step)); if(n==0) break; scanf("%d%d",&s,&e); for(int i=1; i<=n; i++) scanf("%d",&a[i]); printf("%d\n",BFS()); }}
0 0
- hdu 1548 简单的bfs
- hdu 1548 简单BFS
- hdu 1548A strange lift1(简单的BFS)
- HDU 1372Knight Moves(简单的BFS)
- hdu 1026 简单的bfs
- HDU 1175 连连看 简单的BFS
- HDU 1548 A strange lift (简单BFS)
- HDU 1242 简单bfs
- hdu 4444 简单bfs
- hdu 1372 简单bfs
- hdu 1312简单bfs
- HDU 2612 简单bfs
- HDU 1548 (第一次的BFS)
- hdu 1495 非常可乐(简单的的bfs)
- hdu 2757 Ocean Currents(BFS 比较简单的)
- HDU--1195:Open the Lock (一道简单的BFS)
- 一道简单的BFS题 HDU上 CCNU BFS练习的1003
- A strange lift HDU 1548 queue BFS 简单 水题
- ffmpeg打开视频文件步骤
- Socket can 远程帧
- Handler与Message
- Android进阶专题六:NDK 异常&多线程
- Android图片上传(头像裁切+原图原样)
- hdu 1548 简单的bfs
- Android studio快捷键
- 淘宝,京东,苏宁易购技术架构(路线)分析和比较
- Android Virtual Device Manager不能建立新的设备类型的应急解决方法
- 字符串匹配算法--KMP算法
- Cookie 学习总结
- C#利用TcpListener和TcpClient类实现服务器和客户端的通信
- 内存泄露如何解决?
- WM_ACTIVATE窗口激活消息