您的位置:首页 > 其它

hdu 1260 Tickets(dp)

2016-03-30 14:34 344 查看

Tickets

题目链接:

http://acm.hdu.edu.cn/showproblem.php?pid=1260

解题思路:

状态转移方程:dp[i] = min(dp[i-1]+单独买花的时间, dp[i-2]+和前面那个人一起买花的时间)

初始状态为dp[1] = 第一个人单独买话的时间。

AC代码:

#include <bits/stdc++.h>
using namespace std;

const int N = 2005;
int s
,d
;
int dp
;

int main(){
int T;
scanf("%d",&T);
while(T--){
memset(dp,0,sizeof(dp));
int n;
scanf("%d",&n);
for(int i = 1; i <= n; ++i)
scanf("%d",&s[i]);
for(int i = 2; i <= n; ++i)
scanf("%d",&d[i]);
dp[1] = s[1];
for(int i = 2; i <= n; ++i)
dp[i] = min(dp[i-1]+s[i],dp[i-2]+d[i]);
int hh,mm,ss;
hh = dp
/3600;
mm = dp
%3600/60;
ss = dp
%60;
printf("%02d:%02d:%02d%s\n",(8+hh)%24,mm,ss,(hh+8)%24>12?" pm":" am");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: