zoukankan      html  css  js  c++  java
  • HDU 4001 Working in Beijing

    HDU_4001

        这个是一个相对容易的动态规划题,由于每次activity的时候M一定是在上海的,因而要达到这个状态,要么从前一次activity结束一直到现在M一直在上海,要么在上一次activity结束之后M飞回了北京,并在这次activity开始前一天飞到了上海(这种情况的前提是两次activity之间的间隔时间大于或等于2天),在两种情况中取一个花费最小的情况即可。

    #include<stdio.h>
    #include
    <string.h>
    int n,a,b,d[100010];
    double cost[1000010];
    int main()
    {
    int i,j,k,t;
    double temp;
    scanf(
    "%d",&t);
    for(k=0;k<t;k++)
    {
    scanf(
    "%d%d%d",&n,&a,&b);
    for(i=0;i<n;i++)
    scanf(
    "%d",&d[i]);
    cost[
    0]=a+b;
    for(i=1;i<n;i++)
    {
    cost[i]
    =cost[i-1]+(d[i]-d[i-1])*b;
    if(d[i]-d[i-1]>2)
    {
    temp
    =cost[i-1]+2*a+b;
    if(temp<cost[i])
    cost[i]
    =temp;
    }
    }
    printf(
    "Case #%d: %.0f\n",k+1,cost[n-1]+a);
    }
    return 0;
    }

      

  • 相关阅读:
    第36课 经典问题解析三
    第35课 函数对象分析
    67. Add Binary
    66. Plus One
    58. Length of Last Word
    53. Maximum Subarray
    38. Count and Say
    35. Search Insert Position
    28. Implement strStr()
    27. Remove Element
  • 原文地址:https://www.cnblogs.com/staginner/p/2170356.html
Copyright © 2011-2022 走看看