博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 1260 Tickets (动态规划)
阅读量:5124 次
发布时间:2019-06-13

本文共 2329 字,大约阅读时间需要 7 分钟。

Tickets

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 12331    Accepted Submission(s): 6096

Problem Description

Jesus, what a great movie! Thousands of people are rushing to the cinema. However, this is really a tuff time for Joe who sells the film tickets. He is wandering when could he go back home as early as possible.
A good approach, reducing the total time of tickets selling, is let adjacent people buy tickets together. As the restriction of the Ticket Seller Machine, Joe can sell a single ticket or two adjacent tickets at a time.
Since you are the great JESUS, you know exactly how much time needed for every person to buy a single ticket or two tickets for him/her. Could you so kind to tell poor Joe at what time could he go back home as early as possible? If so, I guess Joe would full of appreciation for your help.
 

Input

There are N(1<=N<=10) different scenarios, each scenario consists of 3 lines:
1) An integer K(1<=K<=2000) representing the total number of people;
2) K integer numbers(0s<=Si<=25s) representing the time consumed to buy a ticket for each person;
3) (K-1) integer numbers(0s<=Di<=50s) representing the time needed for two adjacent people to buy two tickets together.
 

Output

For every scenario, please tell Joe at what time could he go back home as early as possible. Every day Joe started his work at 08:00:00 am. The format of time is HH:MM:SS am|pm.

Sample Input

2220 254018

Sample Output

08:00:40 am08:00:08 am

题目大意与分析

有k个人,给出他们买自己的票各自需要多少时间,以及相邻两个人一块买需要多少时间,求从八点开始买,最快什么时候能卖完

状态转移方程:

    dp[i]=min(dp[i-1]+a1[i],dp[i-2]+a2[i-1]);

需要注意的是,前补零的写法:%02d

#include
using namespace std;int dp[2005],a1[2005],a2[2005],i,n,k,times,h,m,s;int main(){ cin>>n; while(n--) { cin>>k; for(i=1;i<=k;i++) { cin>>a1[i]; } for(i=1;i<=k-1;i++) { cin>>a2[i]; } dp[1]=a1[1]; dp[0]=0; for(i=2;i<=k;i++) { dp[i]=min(dp[i-1]+a1[i],dp[i-2]+a2[i-1]); } times=dp[k]; s=times%60; m=(times%3600)/60; h=8+times/3600; if(h<12) printf("%02d:%02d:%02d am\n",h,m,s); else printf("%02d:%02d:%02d pm\n",h-12,m,s); }}

 

转载于:https://www.cnblogs.com/dyhaohaoxuexi/p/11437679.html

你可能感兴趣的文章
unity3d教程游戏包含的一切文件导入资源
查看>>
Swift的笔记和参考
查看>>
栈溢出实践
查看>>
insert---插入记录
查看>>
UML基础知识点
查看>>
ueditor使用-图片上传正常,图片显示异常404
查看>>
windows快捷键
查看>>
xampp默认mysql数据库root密码的修改
查看>>
架构实战:(一)Redis采用主从架构的原因
查看>>
安装php时,make步骤报错make: *** [sapi/fpm/php-fpm] Error 1
查看>>
安卓——launchMode
查看>>
jQuery 实现一个简单的信息反馈或者信息收集的页面
查看>>
Handler post用法整理
查看>>
MySQL修改表名示例
查看>>
Windows安装mysql8.0
查看>>
基于docker创建的Jenkins,settings.xml文件放在哪里
查看>>
mongodb读取测试
查看>>
【飞谷六期】爬虫项目4
查看>>
Android-Animations的使用大全之二:Frame Animation和其他
查看>>
文档基本结构标签的作用
查看>>