hdoj1260 Tickets (简单DP)

时间:2023-03-09 15:13:06
hdoj1260 Tickets (简单DP)

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

思路:

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

 #include<bits/stdc++.h>
using namespace std; int n,k,s[],d[],f[]; int main(){
scanf("%d",&n);
while(n--){
memset(f,,sizeof(f));
scanf("%d",&k);
for(int i=;i<k;i++)
scanf("%d",&s[i]);
for(int i=;i<k-;i++)
scanf("%d",&d[i]);
f[]=s[];f[]=min(f[]+s[],d[]);
for(int i=;i<k;i++)
f[i]=min(f[i-]+s[i],f[i-]+d[i-]);
int hh=,mm=,ss=;
hh+=f[k-]/;
f[k-]%=;
mm+=f[k-]/;
f[k-]%=;
ss+=f[k-];
if(hh<) printf("");
printf("%d:",hh);
if(mm<) printf("");
printf("%d:",mm);
if(ss<) printf("");
printf("%d ",ss);
if(hh<=) printf("am\n");
else printf("pm\n");
}
return ;
}