• hdu1260 dp


    题意:有 k 个人需要买电影票,a[i] 表示第 i 个人单独买票要花费的时间,b[i] 表示第 i-1 个和第 i 个人一起买票需要花费的时间,问卖给所有人各一张票最少需要到什么时候。

    dp[i]表示卖完第 i 个人需要花费的最短时间

    dp[i]=min(dp[i-1]+a[i],dp[i-2]+b[i]);

    初始化:dp[0]=0;dp[1]=a[1];

     1 #include<stdio.h>
     2 #include<string.h>
     3 const int maxn=2e3+5;
     4 int a[maxn],b[maxn];
     5 int dp[maxn];
     6 
     7 inline int min(int a,int b){return a<b?a:b;}
     8 
     9 int main(){
    10     int T;
    11     scanf("%d",&T);
    12     while(T--){
    13         int n;
    14         scanf("%d",&n);
    15         for(int i=1;i<=n;++i)scanf("%d",&a[i]);
    16         for(int i=2;i<=n;++i)scanf("%d",&b[i]);
    17         memset(dp,0x3f,sizeof(dp));
    18         dp[0]=0;
    19         dp[1]=a[1];
    20         for(int i=2;i<=n;++i){
    21             dp[i]=min(dp[i-1]+a[i],dp[i-2]+b[i]);
    22         }
    23         int hour=8+dp[n]/3600;
    24         int min=dp[n]%3600/60;
    25         int sec=dp[n]%60;
    26         bool f=0;
    27         if(hour>12){
    28             f=1;
    29             hour-=12;
    30         }
    31         if(hour<10)printf("0");
    32         printf("%d:",hour);
    33         if(min<10)printf("0");
    34         printf("%d:",min);
    35         if(sec<10)printf("0");
    36         printf("%d ",sec);
    37         if(f)printf("pm
    ");
    38         else printf("am
    ");
    39     }
    40     return 0;
    41 }
    View Code
  • 相关阅读:
    在项目中使用Google Closure Compiler
    在Dreamweaver 中设置SVN的步骤
    挣脱浏览器的束缚(2) 别让脚本引入坏了事
    Java配置环境变量
    Spring3简介
    Java开发常用地址
    struts2 入门
    Spring3 jar包说明
    角色和定位
    QCon 2011参会收获——其它
  • 原文地址:https://www.cnblogs.com/cenariusxz/p/4910204.html
Copyright © 2020-2023  润新知