• HDU 1260 Tickets


    题意:知道一个人买票花的时间和和前面那个人一起买票花的时间,问最少花多少时间可以把票卖完.

       给出T,表示有T组样例

       给出n,表示有n个人买票.

       给出n个数表示这个人单独买票会花的时间.

       给出n-1个数,表示这个人和前面那个人一起买票会花的时间.

    思路:dp[i]=min(dp[i-1]+a[i],dp[i-2]+b[i]);

     1 #include<iostream>
     2 #include<string>
     3 #include<algorithm>
     4 #include<cstdlib>
     5 #include<cstdio>
     6 #include<set>
     7 #include<map>
     8 #include<vector>
     9 #include<cstring>
    10 #include<stack>
    11 #include<cmath>
    12 #include<queue>
    13 #include <bits/stdc++.h>
    14 using namespace std;
    15 #define INF 0x3f3f3f3f
    16 #define ll long long
    17 #define clc(a,b) memset(a,b,sizeof(a))
    18 const int maxn=4010;
    19 
    20 int main()
    21 {
    22     int t;
    23     int n,a[2010];
    24     int dp[2010];
    25     int b[2010];
    26     scanf("%d",&t);
    27     while(t--)
    28     {
    29         scanf("%d",&n);
    30         clc(a,0);
    31         clc(b,0);
    32         clc(dp,0);
    33         for(int i=1;i<=n;i++)
    34         {
    35           scanf("%d",&a[i]);
    36 //          dp[i]=INF;
    37         }
    38         for(int i=2;i<=n;i++)
    39          scanf("%d",&b[i]);
    40         dp[1]=a[1];
    41         for(int i=2;i<=n;i++)
    42         {
    43             dp[i]=min(dp[i-1]+a[i],dp[i-2]+b[i]);
    44         }
    45         int h=dp[n]/3600;
    46         int m=dp[n]%3600/60;
    47         int s=dp[n]%60;
    48        printf("%02d:%02d:%02d%s
    ", (8+h)%24, m, s, (h+8)%24>12?" pm":" am");
    49     }
    50     return 0;
    51 }
    View Code
  • 相关阅读:
    扩展json序列化datatime类型数据
    用select实现socket的IO多路复用
    Python单例模式
    Django(信号相关)
    将字符串按固定长度分隔成子串
    Android Handler介绍
    Android activity生命周期
    Java 启动线程的方式
    java线程中的sleep和wait区别
    JAVA 统计字符串中中文,英文,数字,空格的个数
  • 原文地址:https://www.cnblogs.com/ITUPC/p/5181516.html
Copyright © 2020-2023  润新知