• HDU 1260 Tickets


    令dp[i]为前i个人买好票的最少花费。

    那么这个状态可由2种状态转移而来:1.上一个人和自己组队买票 2.上一个人不和自己组队买票

    即可得:dp[i] = min(dp[i-1]+cost[i], dp[i-2]+together[i]);

    #include <iostream>
    #include <bits/stdc++.h>
    using namespace std;
    
    #define ll long long
    #define mst(a,b) memset(a,b,sizeof(a))
    #define rep(i,a,b) for(ll i=(a);i<(b);++i)
    #define scf(n) scanf("%d", &(n));
    const double eps = 1e-8, PI = acos(-1.0f);
    const int inf = 0x3f3f3f3f, maxN = 1e5 + 5;
    const int maxT = 2005;
    int N, M, T;
    
    int ti[maxT];
    int yq[maxT];
    
    // dp[i]即前i个人买票最少花费
    int dp[maxT];
    
    int main() {
        int K;
        scf(T);
        while (T--) {
            scanf("%d", &K);
            rep(i, 1, K + 1) scf(ti[i]);
            rep(i, 2, K + 1) scf(yq[i]);
    
            dp[0] = 0;
            for (int i = 1; i <= K; ++i) {
                int d1, d2 = inf;
                d1 = dp[i - 1] + ti[i];
                if (i - 2 >= 0)
                    d2 = dp[i - 2] + yq[i];
                dp[i] = min(d1, d2);
            }
            int hh, mm, ss = dp[K];
            hh = ss / 3600;
            ss -= hh * 3600;
            mm = ss / 60;
            ss -= mm * 60;
    
            hh += 8;
            char fg[10];
            if (hh >= 12) strcpy(fg, "pm");
            else strcpy(fg, "am");
            printf("%02d:%02d:%02d %s
    ", hh, mm, ss, fg); 
        }
        return 0;
    }
  • 相关阅读:
    索引优化策略
    mysql列类型选择
    redis安装
    redis相关面试题
    aop动态代理源码分析
    JVM运行时数据区
    redis应用场景
    JPA相关知识
    技术栈
    linux上安装mysql5.6
  • 原文地址:https://www.cnblogs.com/Rosebud/p/9158110.html
Copyright © 2020-2023  润新知