HDU 1260 Tickets
来源:互联网 发布:软件开发助理发展前景 编辑:程序博客网 时间:2024/06/11 11:56
题目地址:点击打开链接
思路:刚开始就想错了,能看出来是动态规划,但是就是想不出具有最优子结构的递推式,我想到的是每个人既可以与前面的一个人一起买,又可以和后面的一个人一起买,不具有无后向性的要求,看了别人的代码就醒悟了,汗,解释看代码,dp[i]表示的是前i个人买票所需要的时间,还有就是测试数据不会超过24小时,不用再对小时%24,午夜12点是am,中午12点是pm
AC代码:
#include<stdio.h>int a[2010],b[2010],dp[2010];int min(int a,int b){return a > b ? b : a;}int main(){int n,k,i,hour,minute,seconds;scanf("%d",&n);while(n--){scanf("%d",&k);for(i=1; i<=k; i++){scanf("%d",&a[i]);}for(i=1; i<=k-1; i++){scanf("%d",&b[i]);}dp[0] = 0;dp[1] = a[1];//前1个人买时只能是他自己for(i=2; i<=k; i++){dp[i] = min(dp[i-1] + a[i],dp[i-2] + b[i-1]);//dp[2] = min(dp[1] + a[2],dp[0] + b[2]),dp[3] = min(dp[2] + a[3],dp[1] + b[2]),2与1和3一起买的情况全考虑了}hour = 8 + dp[k] / 3600;minute = dp[k] % 3600 / 60;seconds = dp[k] % 60;if(hour < 12){printf("%02d:%02d:%02d",hour,minute,seconds);printf(" am\n");}else{printf("%02d:%02d:%02d",hour % 12,minute,seconds);printf(" pm\n");}}return 0;}
0 0
- hdu 1260 Tickets
- hdu 1260 Tickets
- HDU 1260 Tickets
- hdu 1260 Tickets
- hdu 1260 Tickets
- hdu 1260 Tickets
- hdu 1260 Tickets 【dp】
- hdu—1260:Tickets
- hdu 1260 Tickets(dp)
- hdu 1260 tickets dp
- HDU 1260 Tickets
- hdu 1260 Tickets dp
- HDU 1260 Tickets
- HDU 1260 Tickets
- HDU - 1260 Tickets(DP)
- DP-HDU-1260-Tickets
- HDU 1260 Tickets
- HDU 1260 Tickets
- leetcode Valid Palindrome C++&python 题解
- ExtJS 的一些使用总结(适用于3.x版本)——第二弹
- 三种常用链接池c3p0,dbcp,proxool
- HDU 1258 Sum It Up (DFS)
- BestCoder Round #50 (div.2)-----C The mook jong
- HDU 1260 Tickets
- iOS内存管理策略和实践
- ReactiveCocoa学习(二)
- selenium grid2 - node说明
- js_事件流
- 面向对象(构造函数+构造代码块)-第10天
- 配置struts出现404错误
- Android开发工具汇总
- 算法进军大道(二)