• 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
  • 相关阅读:
    Object.keys
    数组内容深拷贝的应用
    CSS如何让页脚固定在页面底部
    vue eslint开发 关掉 tab错误提示
    input框,需要隐式显示的时候,不让它自动填充的办法
    关于BFC
    File协议与HTTP协议 以及区别
    关于缓存
    深拷贝浅拷贝 遇到了bug
    聚餐学习
  • 原文地址:https://www.cnblogs.com/ITUPC/p/5181516.html
Copyright © 2020-2023  润新知