POJ 3616(Milking Time)

链接:https://vjudge.net/problem/POJ-3616#author=0

思路:dp题,首先构造一个结构保存三个时间点,然后排序。接着用状态转移,当前最大值等于之前某个休息时间外的最大值加上当前的value,所以可以构造出状态转移方程

代码:

#include<iostream>
#include<algorithm>
using namespace std;

struct cow{
    int start,end,value;
};


bool cmp(const cow &a1,const cow &a2){
    return a1.start<a2.start;
}

cow a[1001];
int dp[1001];

int main(){
    int n,m,r;
    cin>>n>>m>>r;
    for(int i=1;i<=m;i++){
        cin>>a[i].start>>a[i].end>>a[i].value;
    }
    sort(a+1,a+m+1,cmp);
    for(int i=1;i<=m;i++){
        dp[i] = a[i].value;
        for(int j=1;j<i;j++){
            if(a[j].end+r<=a[i].start)
            dp[i] = max(dp[i],dp[j]+a[i].value);
        }
    }
    int ans = dp[1];
    for(int i=2;i<=m;i++){
        ans = max(ans,dp[i]);
    }
    cout<<ans<<endl;
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,890评论 0 33
  • 动态规划(Dynamic Programming) 本文包括: 动态规划定义 状态转移方程 动态规划算法步骤 最长...
    廖少少阅读 3,632评论 0 18
  • 归去来兮。 1.1 说明 本篇为《挑战程序设计竞赛(第2版)》[http://www.ituring.com.cn...
    尤汐Yogy阅读 14,866评论 0 160
  • 最近我的好基友二哈去泰国教书了,在走之前她在我面前唠叨最多的就是我到了那边要怎么怎么装饰自己的房间,说起来的时候眉...
    Dion杨阅读 909评论 0 2
  • 文/龙女那伽 继续说关于工伤的话题。 劳动能力鉴定,就是通常所说的伤残等级鉴定。这个鉴定,跟普通的民事人身损害的司...
    龙女那伽82阅读 284评论 0 1

友情链接更多精彩内容