zoukankan      html  css  js  c++  java
  • Milking Time---poj3616(简单dp)

    题目链接:http://poj.org/problem?id=3616

    题意:人从奶牛身上挤奶有m个时间段(1----n),每个时间段包含 s e f 表示从 s 到 e 的这段时间可以获得 f 单位的牛奶,每次一个时间段结束后休息 r 小时进入下一时间段

    我们可以把休息的r小时加到每个时间段的结束时间上,这样就可以直接进入下一时间断了,我们按开始时间排序。。

    然后就类似于最长上升子序列了

    #include<stdio.h>
    #include<iostream>
    #include<string.h>
    #include<stdlib.h>
    #include<algorithm>
    using namespace std;
    #define N 1100
    struct node
    {
        int s, e, f;
    }a[N];
    int cmp(node p, node q)
    {
        if(p.s!=q.s)
            return p.s<q.s;
        return p.e<q.e;
    }
    int dp[N];
    int main()
    {
        int n, m, r;
        while(scanf("%d %d %d", &n, &m, &r)!=EOF)
        {
            memset(a, 0, sizeof(a));
            memset(dp, 0, sizeof(dp));
            for(int i=0; i<m; i++)
            {
                scanf("%d%d%d", &a[i].s, &a[i].e, &a[i].f);
                a[i].e+=r;
            }
            sort(a, a+m, cmp);
            int ans=0;
            for(int i=0; i<m; i++)
            {
                dp[i] = a[i].f;
                for(int j=0; j<i; j++)
                {
                    if(a[j].e<=a[i].s)
                    {
                        dp[i]=max(dp[i], dp[j]+a[i].f);
                    }
                }
                ans=max(ans, dp[i]);
            }
            printf("%d
    ", ans);
        }
        return 0;
    }
    View Code
  • 相关阅读:
    懒加载 和 json
    [iOS]用instancetype代替id作返回类型有什么好处?
    (转)Objective-C语法之KVC使用
    UITableView 展示数据
    shopee
    防火墙
    vue项目开发技巧
    文件流
    vant
    node 使用
  • 原文地址:https://www.cnblogs.com/zhengguiping--9876/p/4956447.html
Copyright © 2011-2022 走看看