题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1008
解析:
题目的意思相对比较简单,
电梯上一层需要6秒,下一层需要4秒,每次电梯停靠5秒
初始的时候,电梯在0层,结束后不需要回到0层。
样例:
Sample Input
1 2 3 2 3 1 0
Sample Output
17 41
我们从样例可以看出来
第一个:(2-0)*6+5 = 17
第二个:(3-2)*4+5+(3-2)*6+5+(3-1)*6+5 = 41
我个人理解为在最后一层也得停留5秒吧~
代码:
#include <iostream>
#include <iomanip>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
using namespace std;
int main(){
int N;
while(cin >> N&&N){
int i;
int *a = new int[N+1];
a[0] = 0;
for(i=1; i<=N; ++i)
cin >> a[i];
int cost = 0;
for(i=1; i<=N; ++i){
if(a[i]>a[i-1])
cost += (a[i]-a[i-1])*6;
else
cost += (a[i-1]-a[i])*4;
cost += 5;
}
cout << cost << endl;
}
return 0;
}
本文解析了HDU 1008的电梯问题,详细阐述了如何计算电梯运行所需的时间,包括上行、下行及停靠时间,并通过样例解释了计算方法。
1100

被折叠的 条评论
为什么被折叠?



