博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDOJ1548(BFS)
阅读量:5860 次
发布时间:2019-06-19

本文共 894 字,大约阅读时间需要 2 分钟。

大意:n层楼,坐电梯从a层到b层。第i层有一个数Ki,可以上到i+Ki层,可以下到i-K层。求最少几次能从a到b层。

分析:BFS水题。

代码

 

#include
#include
#include
#include
using namespace std;int n, a, b;int k[205];int e[205];queue
q;int bfs(int x, int y){ memset(e, 0, sizeof(e)); while (!q.empty()) q.pop(); int sum = 0; q.push(x); e[x] = 1; while (!q.empty()) { if (q.front() == y) return e[y]-1; int m = k[q.front()] + q.front(); if (m > 0 && m <= n&&!e[m]) { q.push(m); e[m] = e[q.front()]+1; } int t = q.front() - k[q.front()]; if (t > 0 && t <= n&&!e[t]) { q.push(t); e[t] = e[q.front()] + 1; } q.pop(); } return -1;}int main(){ while (scanf("%d", &n) != EOF&&n) { scanf("%d%d", &a, &b); for (int i = 1; i <= n; i++) scanf("%d", &k[i]); printf("%d\n", bfs(a, b)); } return 0;}

 

转载于:https://www.cnblogs.com/nickqiao/p/7583414.html

你可能感兴趣的文章
《jQuery移动开发》—— 1.3 小结
查看>>
使用 Flutter 反序列化 JSON 的一些选项
查看>>
开发进度——4
查看>>
etymology-F
查看>>
Mycat安装以及使用测试
查看>>
JS里验证信息
查看>>
Akka actor tell, ask 函数的实现
查看>>
windows10 chrome 调试 ios safari 方法
查看>>
Hello , Ruby!
查看>>
Netty 4.1.35.Final 发布,经典开源 Java 网络服务框架
查看>>
详解Microsoft.AspNetCore.CookiePolicy
查看>>
SCDPM2012 R2实战一:基于SQL 2008 R2集群的SCDPM2012 R2的安装
查看>>
SQL SERVER中字段类型与C#数据类型的对应关系
查看>>
Linux lsof命令详解
查看>>
SVG path
查看>>
js判断checkbox是否选中
查看>>
【转】TabError:inconsistent use of tabs and spaces
查看>>
多系统盘挂载
查看>>
MySQL函数怎么加锁_MYSQL 函数调用导致自动生成共享锁问题
查看>>
python httpstr find_Python string.rfind方法代碼示例
查看>>