您的位置:首页 > 其它

xcoj 1227 电梯

2016-04-08 17:23 204 查看

1227: 电梯

时间限制: 1 Sec  内存限制: 128 MB
提交: 69  解决: 11
标签
提交统计讨论版

题目描述

实验楼有一部神秘的电梯,它只有“上”和“下”两个按钮,实验楼的每一层都标有一个值K,第i层的值为Ki,如果按了“上”按钮,会从第i层升到第i+Ki层;如果按了“下”按钮则会从第i层降到第i-Ki层,已知能到的层数为1到N层,GX想从第A层上到第B层,现在给你N,A,B和一串数K1到Kn,请求出GX从A到B,至少按下多少个按钮。

输入

第一行输入N,A,B( 1 <= N,A,B <= 300) ,表示实验楼共有N层,起点为A,终点为B

第二行输入N个数,表示K1到Kn

输出

对于每组数据,输出一个数,表示GX从A到B,至少按下多少个按钮,如果GX无法到达B,请输出-1.

样例输入

5 1 5 3 3 1 2 5

样例输出

3
http://xcacm.hfut.edu.cn/problem.php?id=1227
dijskura+priority_queue

一点小问题都不能犯啊,错了好几次.....

//#include<bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<string>
#include<sstream>
#include<cstdlib>
#include<cstring>
#include<cctype>
#include<algorithm>
#include<stack>
#include<queue>
#include<map>
#include<set>
#include<vector>
#include<deque>
#include<cmath>
#include<climits>
#include<list>
#include<utility>
#include<memory>
#include<cstddef>
#include<iterator>
#include<iomanip>
using namespace std;
typedef long long LL;
typedef long double LD;
const double pi = acos(-1.0);
///////////////////////////////
int st[304];
int d[304];

void init() {
for (int i = 0; i <= 303; i++) {
st[i] = 0;
d[i] = 0x3f3f3f3f;

}
}

///////////////////////////////
int main(int argc, char**argv) {
ios_base::sync_with_stdio(0); cin.tie(0);
//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
////////////////////////////

int N, A, B;
while (cin >> N >> A >> B) {
init();
for (int i = 1; i <= N; i++) {
cin >> st[i];
}

priority_queue<pair<int, int> >Q;
d[A] = 0;
Q.push(make_pair(-d[A], A));

while (!Q.empty()) {
int T = Q.top().second;
Q.pop();

if (T + st[T] <= N) {
if (d[T + st[T]] > d[T] + 1) {
d[T + st[T]] = d[T] + 1;
Q.push(make_pair(-d[T + st[T]], T + st[T]));
}
}
if (T - st[T] >= 1) {
if (d[T - st[T]] > d[T] + 1) {
d[T - st[T]] = d[T] + 1;
Q.push(make_pair(-d[T - st[T]], T - st[T]));
}
}
}

if (d[B] == 0x3f3f3f3f) {
cout << "-1\n";
}
else {
cout << d[B] << endl;
}

}

////////////////////////////
//system("pause");
return 0;
}

//END
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  xcoj 算法 图论