Tickets

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 1935    Accepted Submission(s):
933

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
2
2
20 25
40
1
8
 
Sample Output
08:00:40 am
08:00:08 am
 
很久没做dp了  再加上自己dp本来就很渣,下午比赛时看人家一个一个都做出来,自己只能眼巴巴的看着,唉!!!智商啊!!
题意:一群人去买票,先输入每个人单独买票所花费的时间,在给出两个人两两结合买票所花费的时间,求最短时间
题解:需要推出状态转移方程,设数组a[]是单个人买票所花费的时间,数组b[]是两个人一起买票所花费的时间,dp[i]表示
        前i个人买票所花费的时间,则状态转移方程是:dp[i]=min(dp[i-1]+a[i],dp[i-2]+b[i]);
#include<stdio.h>
#include<string.h>
#define MAX 2100
#define min(x,y)(x<y?x:y)
int a[MAX],b[MAX],dp[MAX];
int main()
{
int t,i,j,n;
int h,m,s;
int sum,tot;
scanf("%d",&t);
while(t--)
{
memset(dp,0,sizeof(dp));
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
for(i=2;i<=n;i++)
scanf("%d",&b[i]);
dp[1]=a[1];
for(i=2;i<=n;i++)
dp[i]=min(dp[i-1]+a[i],dp[i-2]+b[i]);
//printf("%d\n",dp[n]);
sum=dp[n];
h=0;s=0;m=0;
s=sum%60;
m=(sum-s)/60;
if(m>=60)
{
h=h+m/60;
m=m%60;
}
h=8+h;
if(h<=12)
printf("%02d:%02d:%02d am\n",h,m,s);
else
{
h-=12;
printf("%02d:%02d:%02d pm\n",h,m,s);
} }
return 0;
}

  

hdoj 1260 Tickets【dp】的更多相关文章

  1. HDU - 1260 Tickets 【DP】

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1260 题意 有N个人来买电影票 因为售票机的限制 可以同时 卖一张票 也可以同时卖两张 卖两张的话 两 ...

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

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

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

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

  4. HDOJ 1257 最少拦截系统 【DP】

    HDOJ 1257 最少拦截系统 [DP] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...

  5. HDOJ 1159 Common Subsequence【DP】

    HDOJ 1159 Common Subsequence[DP] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ...

  6. Kattis - honey【DP】

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

  7. HDOJ_1087_Super Jumping! Jumping! Jumping! 【DP】

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

  8. POJ_2533 Longest Ordered Subsequence【DP】【最长上升子序列】

    POJ_2533 Longest Ordered Subsequence[DP][最长递增子序列] Longest Ordered Subsequence Time Limit: 2000MS Mem ...

  9. HackerRank - common-child【DP】

    HackerRank - common-child[DP] 题意 给出两串长度相等的字符串,找出他们的最长公共子序列e 思路 字符串版的LCS AC代码 #include <iostream&g ...

随机推荐

  1. (转)Android 从底层实现让应用杀不死【失效Closed】(1)

    转自:http://klob.diandi.life/?p=21#symple-tab-%e8%b0%83%e6%9f%a5%e5%af%b9%e8%b1%a1 情景还原: 我的应用调用了Notifi ...

  2. C++ 中的权限控制

    权限控制,指的是用户只能访问符合自己权限的资源,系统对用户进行权限控制以防止用户的误操作/恶意操作等. 在C++代码中,权限控制指的是程序员在接口声明/类声明/函数声明等中进行的授权控制.如下面的代码 ...

  3. oracle新建表空间及用户

    本文介绍命令模式(管理员权限): 1.以管理员权限打开命令控制台,输入下面命令: Sqlplus sys/管理员账户名称(就是DBA账户) as sysdba;(记得分号哦,有时没有的话会报错) 2. ...

  4. [转] 小tips: 使用&#x3000;等空格实现最小成本中文对齐 ---张鑫旭

    by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=4562 一.重见天日第 ...

  5. ThinkPHP表单令牌验证功能详细介绍

    注:TP版本为3.1.3 在ThinkPHP框架下,两次提交同一个表单,比如提交信息后在浏览器点击后退退回上次的页面,重新点击提交按钮,就会提示“表单令牌错误”的信息. ThinkPHP新版内置了表单 ...

  6. Python 学习之urllib模块---用于发送网络请求,获取数据(3)

    上节内容,是得到了省/直辖市编码,如web='http://m.weather.com.cn/data5/city01',我们需要继续获取此接口的数据,于是进行下面的操作 for  i  in   b ...

  7. __name__ == '__main__'的作用

    当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用. 模块是对象,并且所有的模块都有一个内置属性 __name__.一个 ...

  8. Cannot open your terminal '/dev/pts/4' - please check.

    使用screen命令的时候出现了下面的错误 Cannot open your terminal '/dev/pts/4' - please check. 可以使用script命令来记录这个终端会话, ...

  9. jquery插件,美化select标签

    最近经常与select打交道,因为ie下的select实在太丑了,css怎么搞都搞不好看,因为程序已经写得差不多了,要再去模拟select改动太大,就想着能否不改动select,同时美化它.借鉴一下这 ...

  10. linux tcp 好文

    http://blog.csdn.net/htttw/article/details/7521053