hdoj1260 Tickets (简单DP)

Posted frankchen831x

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }

 

以上是关于hdoj1260 Tickets (简单DP)的主要内容,如果未能解决你的问题,请参考以下文章

Tickets HDU - 1260 简单dp

hdoj 1260(简单dp)

题解报告:hdu 1260 Tickets

HDU1260 Tickets —— DP

HDU 1260 Tickets (普通dp)

HDU 1260:Tickets(DP)