• hdoj1260 Tickets (简单DP)


    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1260

    思路:

    很简单的DP题,状态方程也比较容易想到,用f[i]表示到第i个人所耗的最短时间,详见代码。

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 
     4 int n,k,s[2005],d[2005],f[2005];
     5 
     6 int main(){
     7     scanf("%d",&n);
     8     while(n--){
     9         memset(f,0,sizeof(f));
    10         scanf("%d",&k);
    11         for(int i=0;i<k;i++)
    12             scanf("%d",&s[i]);
    13         for(int i=0;i<k-1;i++)
    14             scanf("%d",&d[i]);
    15         f[0]=s[0];f[1]=min(f[0]+s[1],d[0]);
    16         for(int i=2;i<k;i++)
    17             f[i]=min(f[i-1]+s[i],f[i-2]+d[i-1]);
    18         int hh=8,mm=0,ss=0;
    19         hh+=f[k-1]/3600;
    20         f[k-1]%=3600;
    21         mm+=f[k-1]/60;
    22         f[k-1]%=60;
    23         ss+=f[k-1];
    24         if(hh<10) printf("0");
    25         printf("%d:",hh);
    26         if(mm<10) printf("0");
    27         printf("%d:",mm);
    28         if(ss<10) printf("0");
    29         printf("%d ",ss);
    30         if(hh<=12) printf("am
    ");
    31         else printf("pm
    ");
    32     }
    33     return 0;
    34 }
  • 相关阅读:
    计算最大公因数
    最大子序列和问题
    C++三大函数:析构函数、复制构造函数和operator=
    C++函数返回值传递
    C++动态内存分配
    Halcon Assistants
    网格细分算法
    HDevelop Guide
    MeshLab
    point cloud registration
  • 原文地址:https://www.cnblogs.com/FrankChen831X/p/10399986.html
Copyright © 2020-2023  润新知