DP-hdu1260
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1260
题目描述:


题目大意:每一个人去电影票买票,有两种买票方法:1、自己单人买;2、与前面的人一起买;Joe是售票员,他想要早点下班,因此需要你编程序计算他能下班的最早时间。
解题思路:首先用一个数组a来存放每个人自己一个人买票所需时间,再用一个数组dou来存从第二个人开始,每个人与前面一个人合并买票所需时间,因为第一个人的前面不可能有人了(除了售票员Joe,哈哈),所以第一个人的买票时间是确定了的为a[1]。采用动态规划来解决此问题,动态转移方程式为
dp[i]=min(dp[i-1]+a[i],dp[i-2]+dou[i]);
即:第i个人买票所花的最少时间等于min( 前面i-1个人 买票所花时间 加上 第i个人(自己) 买票所花时间, 前面的i-2个人 买票所花时间 加上 第i个人与第i-1个人(自己与前面那人)合并买票所花时间);
代码实现:
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int dp[];
int main()
{
int n,a[],k,dou[];//a数组存放单人买票所花时间,dou数组存放与前面那人一起买票所花时间
scanf("%d",&n);
while(n--)
{
memset(dp,,sizeof(dp));
memset(a,,sizeof(a));
memset(dou,,sizeof(dou));
scanf("%d",&k);
for(int i=;i<=k;i++)
scanf("%d",&a[i]);
for(int i=;i<=k;i++)
scanf("%d",&dou[i]);
dp[]=a[];//第一个人买票时间是固定了的,因为他的前方不再可能有人与他一起买票了
for(int i=;i<=k;i++)//从第二个人开始遍历,找出最终的买票时间
dp[i]=min(dp[i-]+a[i],dp[i-]+dou[i]);
int h=dp[k]/;///记录最终的时间
int m=dp[k]%/;
int s=dp[k]%;
printf("%02d:%02d:%02d%s\n",(+h)%,m,s,(h+)%>?" pm":" am");//输出时间hh:mm:ss的简单操作
}
return ;
}
DP-hdu1260的更多相关文章
- hdu1260 dp
题意:有 k 个人需要买电影票,a[i] 表示第 i 个人单独买票要花费的时间,b[i] 表示第 i-1 个和第 i 个人一起买票需要花费的时间,问卖给所有人各一张票最少需要到什么时候. dp[i]表 ...
- hdu1260(dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1260 分析:简单dp,dp[i]=min(dp[i-1]+a[i],dp[i-2]); #includ ...
- HDU-1260.Tickets(简单线性DP)
本题大意:排队排票,每个人只能自己单独购买或者和后面的人一起购买,给出k个人单独购买和合买所花费的时间,让你计算出k个人总共花费的时间,然后再稍作处理就可得到答案,具体格式看题意. 本题思路:简单dp ...
- HDU1260(KB12-H DP)
Tickets Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- kuangbin专题十二 HDU1260 Tickets (dp)
Tickets Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- HDU1260 Tickets —— DP
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1260 Tickets Time Limit: 2000/1000 MS (Java/Oth ...
- 「kuangbin带你飞」专题十二 基础DP
layout: post title: 「kuangbin带你飞」专题十二 基础DP author: "luowentaoaa" catalog: true tags: mathj ...
- 【HDU - 1260 】Tickets (简单dp)
Tickets 搬中文 Descriptions: 现在有n个人要买电影票,如果知道每个人单独买票花费的时间,还有和前一个人一起买花费的时间,问最少花多长时间可以全部买完票. Input 给出 N(1 ...
- BZOJ 1911: [Apio2010]特别行动队 [斜率优化DP]
1911: [Apio2010]特别行动队 Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 4142 Solved: 1964[Submit][Statu ...
- 2013 Asia Changsha Regional Contest---Josephina and RPG(DP)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4800 Problem Description A role-playing game (RPG and ...
随机推荐
- Freemarker list 的简单使用
freemarker list (长度,遍历,下标,嵌套,排序) 1. freemarker获取list的size : Java ArrayList<String> list = new ...
- LOJ 2483: 洛谷 P4655: 「CEOI2017」Building Bridges
题目传送门:LOJ #2483. 题意简述: 有 \(n\) 个数,每个数有高度 \(h_i\) 和价格 \(w_i\) 两个属性. 你可以花费 \(w_i\) 的代价移除第 \(i\) 个数(不能移 ...
- python3数字、日期和时间
1.对数值进行取整 #使用内建的round(value,ndigits)函数来取整,ndigits指定保留的位数,在取整时会取值在偶数上,如1.25取一位会取整1.2,1.26会取整1.3 In [1 ...
- freeRTOS中文实用教程3--中断管理之中断服务例程中使用队列
1.前言 消息队列不仅可以用于事件通信,还可以用来传递数据 2.实例说明消息队列的执行过程 3.主要API API名称 说明 参数 返回值 xQueueSendFromISR()完全等同于 xQueu ...
- springboot系列七:springboot 集成 MyBatis、事物配置及使用、druid 数据源、druid 监控使用
一.MyBatis和druid简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.M ...
- C#实现图片叠加,图片上嵌入文字,文字生成图片的方法
/// <summary> /// 图片叠加 /// </summary> /// <param name="sender"& ...
- CentOS7 虚拟机设置文件共享 VMWareTools安装遇到的坑
设置文件共享的前提条件是已经安装好VMware Tools. 现在从安装VMware Tools开始讲起: 第一步:安装VMware Tools (如果安装的centos是最小安装,需要提前安装组件g ...
- 生产环境elasticsearch5.0.1和6.3.2集群的部署配置详解
线上环境elasticsearch5.0.1集群的配置部署 es集群的规划: 硬件: 7台8核.64G内存.2T ssd硬盘加1台8核16G的阿里云服务器 其中一台作为kibana+kafka连接查询 ...
- Go语言规格说明书 之 通道 发送语句(send) 和 接收操作符(receive)
go version go1.11 windows/amd64 本文为阅读Go语言中文官网的规则说明书(https://golang.google.cn/ref/spec)而做的笔记,介绍Go语言的 ...
- spring mvc 校验@NULL
一需要的包 1 validation-api-1.0.0.GA.jar:JDK的接口: 2 hibernate-validator-4.2.0.Final.jar 是对上述接口的实现: 二 若在pom ...