zoukankan      html  css  js  c++  java
  • HDU-1260.Tickets(简单线性DP)

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

      本题思路:简单dp,用dp[ i ]来存储前i个人购买票所需要的最小时间,则很容易得出状态转移方程为dp[ i ] = min (dp[i - 1] + a[ i ], dp[i - 2] + b[i - 1]);

      参考代码:

     1 #include <iostream>
     2 #include <cstring>
     3 #include <algorithm>
     4 #include <cstdio>
     5 using namespace std;
     6 
     7 const int maxk = 2e3 + 5;
     8 int k, a[maxk], b[maxk], dp[maxk];
     9 
    10 int main () {
    11     int n;
    12     cin >> n;
    13     while(n --) {
    14         cin >> k;
    15         for(int i = 1; i <= k; i ++)
    16             cin >> a[i];
    17         for(int i = 1; i < k; i ++)
    18             cin >> b[i];
    19         dp[1] = a[1];
    20         for(int i = 2; i <= k; i ++) {
    21             dp[i] = min(dp[i - 1] + a[i], dp[i - 2] + b[i - 1]);
    22         }
    23         int h = dp[k] / 3600;
    24         int hour = 8 + h;
    25         h = dp[k] % 3600;
    26         int minute = h / 60;
    27         h = h % 60;
    28         int s = h;
    29         char ss[3] = "am";
    30         if(hour > 12) {
    31             hour -= 12;
    32             strcpy(ss, "pm");
    33         }
    34         printf("%02d:%02d:%02d %s
    ", hour, minute, s, ss);
    35     }
    36     return 0;
    37 }
    View Code
  • 相关阅读:
    (转)C#中Thread.sleep()
    ZigBee无线信道组成
    JSP应用html乱码的终极解决办法
    How to size text using ems
    iframe和frame的区别
    [洛谷P2827]蚯蚓
    [洛谷P3391]【模板】文艺平衡树(Splay)
    [洛谷P4180]严格次小生成树
    HTTP 常见鉴权
    使用 rsync 备份/复制 系统
  • 原文地址:https://www.cnblogs.com/bianjunting/p/10648228.html
Copyright © 2011-2022 走看看