这题的题意就是,如果在k层,该数的序号为k,则在k层上只能去k+a[k]层或者k-a[k],这样的话,就变成了一个单向联通图,对这个Dijkstra算法就可以了。

#include <cstdio>
#include <string.h>
const int INF=1<<30;
int d[210],w[210][210];
bool vis[200];
int n,k,s,e; void Dijkstra(int s,int e)
{
int min,x;
memset(vis,0,sizeof(vis));
for (int i=0;i<n;i++)
d[i]=w[s][i];
d[s]=0;
vis[s]=1;
for (int k=1;k<n;k++) {
min=INF;
for (int j=0;j<n;j++) {
if (!vis[j]&&d[j]<min) {
min=d[j];
x=j;
}
}
if (min==INF)
break;
vis[x]=1;
for (int i=0;i<n;i++) {
if (!vis[i]&&d[i]>w[x][i]+d[x])
d[i]=w[x][i]+d[x];
}
}
} int main()
{
while (scanf("%d",&n)&&n) {
scanf("%d%d",&s,&e);
s--;
e--;
for (int i=0;i<n;i++) {
for (int j=0;j<n;j++)
w[i][j]=INF;
}
for (int i=0;i<n;i++) {
scanf("%d",&k);
if (i+k<n)
w[i][i+k]=1;
if (i-k>=0)
w[i][i-k]=1;
}
Dijkstra(s,e);
printf("%d\n",d[e]==INF?-1:d[e]);
}
return 0;
}

HDU-1548-奇怪的电梯的更多相关文章

  1. cogs 364. [HDU 1548] 奇怪的电梯 Dijkstra

    364. [HDU 1548] 奇怪的电梯 ★   输入文件:lift.in   输出文件:lift.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述] 呵呵,有一天我做了 ...

  2. luogu[1135]奇怪的电梯

    题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第i层楼(1<=i<=N)上有一个数字Ki(0<=Ki<=N).电梯只有四个按钮:开 ...

  3. TYVJ P3522 &&洛谷 P1135 奇怪的电梯 Label:bfs

    题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第i层楼(1<=i<=N)上有一个数字Ki(0<=Ki<=N).电梯只有四个按钮:开 ...

  4. 奇怪的电梯(HDU1548) (Dijkstra)或者(BFS)

    问题 E: 奇怪的电梯 时间限制: 1 Sec  内存限制: 64 MB提交: 35  解决: 16[提交][状态][讨论版] 题目描述 有一天桐桐做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都 ...

  5. P1135 奇怪的电梯 dp

    题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第ii层楼(1 \le i \le N)(1≤i≤N)上有一个数字K_i(0 \le K_i \le N)K ...

  6. 洛谷 P1135 奇怪的电梯 【基础BFS】

    题目链接:https://www.luogu.org/problemnew/show/P1135 题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第 i 层 ...

  7. 洛谷 P1135 奇怪的电梯

    题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第i层楼(1<=i<=N)上有一个数字Ki(0<=Ki<=N).电梯只有四个按钮:开 ...

  8. P1135 奇怪的电梯

    题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第i层楼(1<=i<=N)上有一个数字Ki(0<=Ki<=N).电梯只有四个按钮:开 ...

  9. HDU 1548 A strange lift (广搜)

    题目链接 Problem Description There is a strange lift.The lift can stop can at every floor as you want, a ...

  10. 【DFS】奇怪的电梯

    奇怪的电梯 题目描述 有一天桐桐做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第i层楼(1≤i≤N)上有一个数字K:(0≤Ki≤N).电梯只有四 个按钮:开,关,上,下.上下的层 ...

随机推荐

  1. 简单重载运算符in priority_queue By cellur925

    我们都知道priority_queue是大根堆. 一.变成小根堆 法一:把元素的相反数丢进堆中 法二 priority_queue<int,vector<int>,greater&l ...

  2. Flutter中的可滚动列表组件-PageView

    PageVIew,可滚动的视图列表组件,而且每一个子组件的大小都和视图窗口大小一样. 属性: controller -> PageController 用于控制视图页面滚动到的位置 childr ...

  3. MyBatis逆向工程中domainObjectRenamingRule报错或无效

    使用domainObjectRenamingRule报错 在使用MyBatis逆向工程时报错如下: org.mybatis.generator.exception.XMLParserException ...

  4. SpringBoot | 集成Java Mail

    Spring Boot 对Java mail 集成提供了自动配置的支持,只需要配置依赖以及在application.properties 里配置邮件信息即可. 添加依赖: <dependency ...

  5. Glide加载图片的事例

    //获取图片的url String url = resultsEntity.getUrl(); //判断获取的图片是否存在 if (resultsEntity.getItemHeight() > ...

  6. apache配置优化 - 解决apache环境下网站访问速度慢的问题(重点参考)

    如果apche访问量过大,将会导致页面打开迟缓,下载速度也降低,如果由于经费和环境问题,集群方案没有得以应用.可以通过对Apache2增加模块MPM来进行优化, 这里我选择线程型MPM加以优化:  开 ...

  7. mysql写存储过程并定时调用

    设置一个定时任务:运行以下SQL -- 创建一个表test:字段endtime CREATE TABLE test (endtime DATETIME);   -- 创建函数 :向test插入endt ...

  8. 学习php中的mysql()函数

    1.mysql_connect(1,2,3):连接数据库服务器语句,一般常用这三个参数(1)数据库服务器地址,(2)用户名,(3)密码:常与die()(或者exit())函数结合使用:die()函数用 ...

  9. Vue实例的4个常用选项

    1.过滤器 filters:在不改变的data的情况下输出前端页面需要的格式数据.例如将小数过滤为整数等.filters是一个对象,里边定义一个function方法,function传入一个参数,fu ...

  10. uvm_env——UVM大环境(UVM Environment )

    1 What is uvm_env? uvm_env is used to create and connect the uvm_components like driver, monitors , ...