zoukankan      html  css  js  c++  java
  • 1008

    每次计算时间的消耗都需要依靠上一次的值,再加上本次的时间消耗。这是动态规划的特性。

    递推式为:

    v[i],表示电梯到第i次停靠时的时间消耗值。a[i],表示第i次电梯的停靠楼层。

    v[i] = v[i-1] + abs(a[i] -a[i-1])*6+5  当电梯向上升

    v[i] = v[i-1] + abs(a[i] -a[i-1])*4+5  当电梯向下降

    示例代码:

     1 #include <iostream>
     2 using namespace std;
     3 int v[100];
     4 int add(int *a,int size)
     5 {
     6     memset(v,0,sizeof(v));
     7     v[0] = a[0]*6+5;
     8     int i=0;
     9     for(i=1;i<size;i++)
    10     {
    11         if(a[i-1] > a[i])
    12             v[i] =v[i-1] + abs(a[i-1] -a[i])*4 +5;
    13         else
    14             v[i] =v[i-1] + abs(a[i-1] -a[i])*6 +5;
    15     }
    16     return v[i-1];
    17 }
    18 int main()
    19 {
    20     int num;
    21     while(cin>>num && num)
    22     {
    23         int *a = new int[num];
    24         for(int i=0;i<num;i++)
    25             cin >> a[i];
    26         cout << add(a,num)<<endl;
    27         delete [] a;
    28     }
    29     return 0;
    30 }
  • 相关阅读:
    写在最前面
    Bzoj 2281 [Sdoi2011]黑白棋 题解
    bzoj3125: CITY 题解
    CDQZ 集训大总结
    CDQZ集训DAY10 日记
    CDQZ集训DAY9 日记
    CDQZ集训DAY7 日记
    CDQZ集训DAY6 日记
    CDQZ集训DAY5 日记
    CDQZ集训DAY4 日记
  • 原文地址:https://www.cnblogs.com/xuxu8511/p/2446252.html
Copyright © 2011-2022 走看看