• HDU


    题目链接

    http://acm.hdu.edu.cn/showproblem.php?pid=1260

    题意

    有N个人来买电影票 因为售票机的限制 可以同时 卖一张票 也可以同时卖两张 卖两张的话 两个人必须是相邻的

    给出 N 个 价格 是 一个一个买的时间花费

    给出 N - 1个价格 是 相邻的两个人一起买的时间花费 求出 最小的时间花费

    思路

    dp[i] 表示 卖到当前这个人的时间花费

    状态转移方程
    dp[i] = min(dp[i - 2] + b[i - 1], dp[i - 1] + a[i])

    当前这个人的时间花费 他 可以单独买 就是 dp[i - 1] + a[i]
    也可以 和 上一个人 一起买 就是 dp[i - 2] + b[i - 1] 去最优解

    AC代码

    #include <cstdio>
    #include <cstring>
    #include <ctype.h>
    #include <cstdlib>
    #include <cmath>
    #include <climits>
    #include <ctime>
    #include <iostream>
    #include <algorithm>
    #include <deque>
    #include <vector>
    #include <queue>
    #include <string>
    #include <map>
    #include <stack>
    #include <set>
    #include <list>
    #include <numeric>
    #include <sstream>
    #include <iomanip>
    #include <limits>
    
    #define CLR(a, b) memset(a, (b), sizeof(a))
    #define pb push_back
    
    using namespace std;
    typedef long long ll;
    typedef long double ld;
    typedef unsigned long long ull;
    typedef pair <int, int> pii;
    typedef pair <ll, ll> pll;
    typedef pair<string, int> psi;
    typedef pair<string, string> pss;
    
    const double PI = acos(-1.0);
    const double E = exp(1.0);
    const double eps = 1e-8;
    
    const int INF = 0x3f3f3f3f;
    const int maxn = 2e3 + 5;
    const int MOD = 1e9 + 7;
    
    int a[maxn];
    int b[maxn];
    int dp[maxn];
    
    int main()
    {
        int t;
        cin >> t;
        while (t--)
        {
            int n;
            scanf("%d", &n);
            for (int i = 1; i <= n; i++)
                scanf("%d", &a[i]);
            for (int i = 1; i < n; i++)
                scanf("%d", &b[i]);
            CLR(dp, 0);
            dp[0] = 0;
            dp[1] = a[1];
            for (int i = 2; i <= n; i++)
            {
                dp[i] = min(dp[i - 2] + b[i - 1], dp[i - 1] + a[i]);
            }
            int a = 8, b = 0, c = dp[n];
            b += c / 60;
            c %= 60;
            a += b / 60;
            b %= 60;
            printf("%02d:%02d:%02d am
    ", a, b, c);
        }
    }
    
  • 相关阅读:
    NSMutableURLRequest,在POST方式下传递参数
    IOS开发学习笔记(2)-----UIButton 详解
    IOS开发学习笔记(1)-----UILabel 详解
    ios非UTF-8格式的网页解析
    ios 使用json
    IOS下WEBVIEW 的javascript数组与json定义 及交互
    Objective-C学习之解析XML
    iPhone HTTP获得XML并使用GDataXML解析
    PS学习笔记(05)
    PS学习笔记(04)
  • 原文地址:https://www.cnblogs.com/Dup4/p/9433112.html
Copyright © 2020-2023  润新知