• hdu 1260 Tickets


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

    题目大意:n个人买票,每个人买票都花费时间,相邻的两个人可以一起买票以节约时间;

    所以一个人可以自己买票也可以和前面的人一起买也可以和后面的人一起买,和后面的人一起买也就相当于后面的人后前面的人一起买;

    因此一个人有两种买票方式自己买或者和前面的人一起买,选取耗时最短的;

    得到DP的状态方程:

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

    样例:

    1

    5

    15 5 10 5 20

    20 10 7 10

    1 2 3 4 5 分别表示每个人的编号

    (1)表示第i个人自己买票大家公用的时间

    (2)表示第i个人和前面一个人一起买票大家公用的时间

    (3)表示每个人自己买票花费的时间

    (4)表示每两个人一起买票花费的时间

    每一次dp去(1),(2)的最小值

    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    #include<algorithm>
    #include<stdlib.h>
    #define N 2010
    
    using namespace std;
    
    int main()
    {
        int i, t, n, a[N], b[N], dp[N], m;
        scanf("%d", &t);
        while(t--)
        {
            int H, M, S;
            scanf("%d", &n);
            for(i = 1 ; i <= n ; i++)
                scanf("%d", &a[i]);
            for(i = 2 ; i <= n ; i++)
                scanf("%d", &b[i]);
            dp[1] = a[1];
            for(i = 2 ; i <= n ; i++)
                dp[i] = min(dp[i - 1] + a[i], dp[i - 2] + b[i]);
            m = dp[n];
            H = m / 3600;
            M = (m - H * 3600) / 60;
            S = m - H * 3600 - M * 60;
            H += 8;
            if(H <= 12)
                printf("%02d:%02d:%02d am
    ", H, M, S);
            else
                printf("%02d:%02d:%02d pm
    ", H, M, S);
        }
        return 0;
    }
  • 相关阅读:
    Django model中的内嵌类(Class Meta)
    drf框架(二)
    drf框架(一)
    html、CSS 简单回顾
    前端vue框架(五)
    前端vue框架(四)
    前端Vue框架(三)
    前端vue框架(二)
    前端开发Vue框架(二)
    mysql 比较两个日期的时间差
  • 原文地址:https://www.cnblogs.com/qq2424260747/p/4737504.html
Copyright © 2020-2023  润新知