题目链接: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的更多相关文章

  1. hdu1260 dp

    题意:有 k 个人需要买电影票,a[i] 表示第 i 个人单独买票要花费的时间,b[i] 表示第 i-1 个和第 i 个人一起买票需要花费的时间,问卖给所有人各一张票最少需要到什么时候. dp[i]表 ...

  2. hdu1260(dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1260 分析:简单dp,dp[i]=min(dp[i-1]+a[i],dp[i-2]); #includ ...

  3. HDU-1260.Tickets(简单线性DP)

    本题大意:排队排票,每个人只能自己单独购买或者和后面的人一起购买,给出k个人单独购买和合买所花费的时间,让你计算出k个人总共花费的时间,然后再稍作处理就可得到答案,具体格式看题意. 本题思路:简单dp ...

  4. HDU1260(KB12-H DP)

    Tickets Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  5. kuangbin专题十二 HDU1260 Tickets (dp)

    Tickets Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  6. HDU1260 Tickets —— DP

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1260 Tickets Time Limit: 2000/1000 MS (Java/Oth ...

  7. 「kuangbin带你飞」专题十二 基础DP

    layout: post title: 「kuangbin带你飞」专题十二 基础DP author: "luowentaoaa" catalog: true tags: mathj ...

  8. 【HDU - 1260 】Tickets (简单dp)

    Tickets 搬中文 Descriptions: 现在有n个人要买电影票,如果知道每个人单独买票花费的时间,还有和前一个人一起买花费的时间,问最少花多长时间可以全部买完票. Input 给出 N(1 ...

  9. BZOJ 1911: [Apio2010]特别行动队 [斜率优化DP]

    1911: [Apio2010]特别行动队 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 4142  Solved: 1964[Submit][Statu ...

  10. 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 ...

随机推荐

  1. Python之print(args)与sys.stdout.write(string)使用总结

    一.sys.stdout.write(string) import sys; # sys.stdout.write(): # 1.默认不换行 # 2.参数必须是字符串 # demo 01 x = &q ...

  2. jquery 跨域请求

    参考博客:  http://www.cnblogs.com/freeweb/p/4908832.html 由于安全性问题, js 一般不支持跨域操作,但只要在客户端与服务器端引入相同的参数,通过jso ...

  3. 用Quartz 2D画小黄人

    第一步: 先创建一个OneView类,并在storyboard里边拖拽一个UIview,将这个UIview的类改成OneView.如图所示: 第二步: 在新创建的Oneview里,补齐下列代码: // ...

  4. 2017/05/08 java 基础 随笔

    1.null pointer exception 指针变量obj 没有指向任何空间 你调用它的方法和属性就会出错 2.基本数据类型值传递,不改变原值,调用后就会弹栈,局部变量随时消失 引用数据类型值传 ...

  5. vsftpd控制用户禁止访问上级目录 只能访问自己目录

    涉及文件: vsftpd.conf chroot_list_file=/etc/vsftpd.chroot_list 如果设置为 chroot_local_user=YES chroot_list_e ...

  6. 在SecureCRT中做make menuconfig乱码

      不能在SecureCRT中做(显示为乱码),从高手那里学来一招,解决了这个问题: options--terminal--emulation-- xterm  ansi color1.先设置终端为x ...

  7. chattr的使用

    让某个文件只能往里面追加内容,不能删除,一些日志文件适用于这种操作: chattr +a /home/caolei/.bash_history 查看lsattr /home/caolei/.bash_ ...

  8. 设置linux新用户默认当前目录及使用的shell

    切换到root用户,直接修改/etc/passwd文件,找到你的用户名你一行,如下图所示修改路径,然后保存即可.

  9. 【转】OpenCV对图片中的RotatedRect进行填充

    函数名:full_rotated_rect 函数参数: image输入图像,rect希望在图像中填充的RotatedRect,color填充的颜色 主要的思路是:先找到RotatedRect的四个顶点 ...

  10. ORACLE 利用SCN恢复误delete的表

    --kg是误删除的表 SQL> select count(*) from kg;   COUNT(*) ----------     820861 SQL> delete from kg; ...