HDU 1260 Tickets

题意:有N个人要买票,你可以一个一个人卖票,时间分别为Xs,也可以相邻两个人一起卖票,时间为Ys,从早上八点开始卖票,问你何时最早将N个人的票卖完。

思路:解决情况是当前最优,要么就单卖,状态最优就是前一个人的,要么和前一个人一起拼凑,状态最优是前两个人的,取时间最短的。

时间显示问题,注意下上下午的事情就好了。

dp[i] = min(dp[i-1]+signal[i],dp[i-2]+unit[i])

/**
Sample Input
2
2
20 25
40
1
8 Sample Output
08:00:40 am
08:00:08 am
**/ #include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn = 2005;
int signal[maxn];
int unit[maxn];
int H,M,S;
int dp[maxn];
char t[5];
void conver(int time){
H = (time/3600+H)%24;
M = (time/60)%60;
S = (time)%60;
if(H > 12){
strcpy(t,"pm");
}
H = H%12;
}
int main()
{
int N,K;
scanf("%d",&N);
while(N--){
memset(dp,0,sizeof(dp));
H = 8;
M = S = 0;
strcpy(t,"am");
scanf("%d",&K);
for(int i=0;i<K;i++){
scanf("%d",&signal[i]);
}
for(int i=1;i<K;i++){
scanf("%d",&unit[i]);
}
dp[0] = signal[0]; //注意对第一个人的初始化
for(int i=1;i<K;i++){
dp[i] = min(dp[i-1]+signal[i],dp[i-2]+unit[i]);
}
conver(dp[K-1]);
printf("%02d:%02d:%02d %s\n",H,M,S,t);
}
return 0;
}

【DP】HDU 1260的更多相关文章

  1. 【dp】HDU 1421 搬寝室

    http://acm.hdu.edu.cn/showproblem.php?pid=1421 [题意] 给定n个数,要从n个数中选择k个二元组{x,y},最小化sum{(x-y)^2} 2<=2 ...

  2. 【DP】BZOJ 1260: [CQOI2007]涂色paint

    1260: [CQOI2007]涂色paint Time Limit: 30 Sec  Memory Limit: 64 MBSubmit: 893  Solved: 540[Submit][Stat ...

  3. 【DP】HDU 1176

    HDU 1176 免费馅饼 题意:中文题目不解释. 思路:因为是从中间出发所以思路卡了许久,还在之前做了道HIHO入门的题.能想到的点,从时间思考,然后初始化1s的时候,4,5,6,的数值要特别赋值. ...

  4. 【DP】HDU 1114

    HDU 1144 Piggy-Bank 题意:有这么个存钱罐,给你空的时候重量和满的时候的重量,再给你N中类型的硬币(给出N种硬币总数量和总重量,可多次使用),问你怎样恰好填满存钱罐,而让填入的硬币数 ...

  5. 【DP】HDU 1087

    HDU 1078 Super Jumping! Jumping! Jumping! 题意: 有这么个游戏,从start到end(自己决定在哪停下来)连续跳圈,中间不能空一个圈不跳,圈里的数字必须比你上 ...

  6. HDOJ_1087_Super Jumping! Jumping! Jumping! 【DP】

    HDOJ_1087_Super Jumping! Jumping! Jumping! [DP] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: ...

  7. Kattis - honey【DP】

    Kattis - honey[DP] 题意 有一只蜜蜂,在它的蜂房当中,蜂房是正六边形的,然后它要出去,但是它只能走N步,第N步的时候要回到起点,给出N, 求方案总数 思路 用DP 因为N == 14 ...

  8. HDOJ 1423 Greatest Common Increasing Subsequence 【DP】【最长公共上升子序列】

    HDOJ 1423 Greatest Common Increasing Subsequence [DP][最长公共上升子序列] Time Limit: 2000/1000 MS (Java/Othe ...

  9. HDOJ 1501 Zipper 【DP】【DFS+剪枝】

    HDOJ 1501 Zipper [DP][DFS+剪枝] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Ja ...

随机推荐

  1. js数组中sort排序注意的地方

    var a=[1,2,3,4,5] function sum(a,b) { return a-b } //从小到大 function obj(a,b) { return b-a } //从大到小 a. ...

  2. 设计模式--命令模式Command(对象行为型)

    一.命令模式 将一个请求封装为一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能. (1)Command类:是一个抽象类,类中对需要执行的命令进行 ...

  3. Sublime 3 如何配置SVN插件

    在sublime里面安装svn的插件,就可以在sublime的操作界面里面进行相关svn操作,这样就不用再回到文件系统中,进行相关svn的操作. 1.在进入sublime界面后,点击顶部菜单“Pref ...

  4. 为RecyclerView的不同item项实现不同的布局(添加分类Header)

    最近在做一个应用的时候,需要为GridLayoutManager添加头部header,然后自然而然就想到了用不同的itemType去加载不同的布局. 1.实现多item布局,用不同的itemType去 ...

  5. linux vim 插入行号

    1 在文本中插入行号 最近有朋友提到某编辑器有一个可以插入行号的插件,问Vim有没有办法可以在文章中插入行号.%$^&*#8~#$@#!--让我们看一下有多少种方式可以在vim中插入行号或数字 ...

  6. 源码安装php

    php安装扩展源yum install epel-releaseyum updateyum install libmcrypt libmcrypt-devel mcrypt mhash -yyum i ...

  7. JQuery EasyUI DataGrid列表所见所得随意导出excel

    1.抽取DataGrid列表数据 function ExportNormal(strXlsName, exportGrid, postUrl, hiddenColumns) { /// <sum ...

  8. php 批量删除

    <body><form action="shanchu.php" method="post"><table width=" ...

  9. ATM+购物车

    本次代码的实现用到了模块间的互相调用,这对于初学者而言有些难度,不过这也是我们必须要掌握的,在以后的大程序中,多个模块会让我们的代码看起来简洁明了,易排错 (本次代码只是简单的实现的基本的功能,其代码 ...

  10. IMEI串号

    IMEI串号就是国际移动设备身份码,是电子设备的唯一身份证,由于它的唯一性,它可以用来查询电子设备的保修期还有产地,可以说用处直逼人民的身份证啊! 在拨号键盘页面  输入[*#06#]五个字符