HDU_1548_AStrangeLift
2015-07-25 16:53
225 查看
bfs即可每个楼梯有两种情况
#include <iostream> #include <stdio.h> #include <queue> #include <string.h> using namespace std; const int M=205; int fl[M]; int isu[M]; queue<int>re; void clearu() //清空 { for(int i=0;i<M;i++) //这里的范围记得改; { isu[i]=0; } } void bfs(int sx,int ex,int n) { while(!re.empty()) re.pop(); re.push(sx); isu[sx]=1; while(!re.empty()) { int t=re.front(); re.pop(); int tmp=t+fl[t]; //常用的表达式设为变量 if(1<=tmp&&tmp<=n&&!isu[tmp]) { re.push(tmp); isu[tmp]=isu[t]+1; if(tmp==ex) return; } tmp=t-fl[t]; if(1<=tmp&&tmp<=n&&!isu[tmp]) { re.push(tmp); isu[tmp]=isu[t]+1; if(tmp==ex) return; } } } int main() { int n; int a,b; while(scanf("%d",&n)!=EOF) { clearu(); if(!n) break; scanf("%d%d",&a,&b); for(int i=1;i<=n;i++) { scanf("%d",&fl[i]); } bfs(a,b,n); printf("%d\n",isu[b]-1); //涵盖了不可能的情况 } return 0; }
相关文章推荐
- pojHotel 线段树
- python+Eclipse+pydev环境搭建
- ubuntu14.04下安装ia32-libs的方法
- UiAutomator——环境搭建及简单使用
- Cached VS Buffers
- POJ 2635 The Embarrassed Cryptographer(素数筛+高精度求模+同余模)
- 各种排序算法比较(2):时间复杂度,空间复杂度
- 在ASP.NET MVC中,使用Bundle来打包压缩js和css
- DMA和cache的一致性
- struts2(3)
- WP与IOS与Android的后台机制相同与不同
- Ubuntu修改apt-get镜像地址提高下载速度
- getcher getch getched用法和缓冲区的概念
- 怎样取消已经被内核占用的按键驱动中断号
- android jxl OOM内存溢出问题解决(适用大部分内存溢出)
- javascript解析xml实现省市县三级联动的方法
- 正数的算术平均值不小于几何平均值的一个初等证明
- Kali Linux web渗透测试 学习笔记 1 系统安装
- visual_studio插件开发中的一些问题
- AT89C51特殊功能寄存器速查表