解题思路:

dp[i]:选择第i个区间获得最大值
1.只在第i个区间取奶 dp[i]=node[i].val;
2.如果能在前面已经取奶的后面接着取奶 node[j].ed+R<=node[i].st 时dp[i]=dp[j]+node[i].val;
dp[i]=max(dp[i],dp[j]+node[i].val)(j<i)

实现代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;const int MAXN=10000;
const int INF=1<<30;/*
dp[i]:选择第i个区间获得最大值
1.只在第i个区间取奶 dp[i]=node[i].val;
2.如果能在前面已经取奶的后面接着取奶  node[j].ed+R<=node[i].st 时dp[i]=dp[j]+node[i].val;
dp[i]=max(dp[i],dp[j]+node[i].val)(j<i)*/
struct Node{int st,ed;int val;bool operator <(const Node &rhs) const{if(ed!=rhs.ed)return ed<rhs.ed;elsereturn st<rhs.st;}
}node[MAXN];int dp[MAXN];int main(){int N,M,R;while(scanf("%d%d%d",&N,&M,&R)!=EOF){for(int i=0;i<M;i++)scanf("%d%d%d",&node[i].st,&node[i].ed,&node[i].val);sort(node,node+M);memset(dp,0,sizeof(dp));int res=-INF;for(int i=0;i<M;i++){dp[i]=node[i].val;for(int j=0;j<i;j++){if(node[j].ed+R<=node[i].st)dp[i]=max(dp[i],dp[j]+node[i].val);}res=max(dp[i],res);}cout<<res<<endl;}return 0;
}

转载于:https://www.cnblogs.com/IKnowYou0/p/6638625.html

POJ 3616 Milking Time相关推荐

  1. POJ 3616 Milking Time (字符串DP)

    题意:找元素关于对角线左或右对称的最大矩阵 思路:左右对角线只需要遍历一条就可以了.只要当前点往上遍历和往后遍历一样就可以. 1 #include<iostream> 2 #include ...

  2. 动态规划训练22 [Milking Time POJ - 3616 ]

    Milking Time POJ - 3616 说实话这道题目非常简单,本质上就是 多段有向图的求最大值问题.稍微变化的地方在于这个的的有向边没有那么明显 ,而是需要自己去寻找 如果任务i到任务j之间 ...

  3. J - Milking Time POJ - 3616(dp动态规划)

    Bessie is such a hard-working cow. In fact, she is so focused on maximizing her productivity that sh ...

  4. 【POJ - 3616】Milking Time (贪心+dp)

    题干: Bessie is such a hard-working cow. In fact, she is so focused on maximizing her productivity tha ...

  5. POJ 2185 Milking Grid (KMP,GCD)

    http://poj.org/problem?id=2185 求最小覆盖子矩阵的面积,求出每行的最小覆盖子串,求最小公倍数,就是矩阵的长度 求出每列的最小覆盖子矩阵然后求最小公倍数,就是矩阵的宽 最小 ...

  6. POJ 3616 奶牛挤奶

    Milking Time 贝茜是一个勤劳的牛.事实上,她如此​​专注于最大化她的生产力,于是她决定安排下一个N(1≤N≤1,000,000)小时(方便地标记为0..N-1),以便她生产尽可能多的牛奶. ...

  7. POJ 2455Secret Milking Machine(二分+网络流之最大流)

    题目地址:POJ2455 手残真浪费时间啊..又拖到了今天才找出了错误..每晚两道题不知不觉又变回了每晚一道题...sad.. 第一次在isap中忘记调用bfs,第二次则是遍历的时候竟然是从1開始遍历 ...

  8. poj 3616(简单dp)

    题意:你有一头奶牛,你能够在一定的时间里挤奶.而且挤奶量也不同,每次挤奶要休息r时间,问你最大可以挤多少奶. 解题思路:这道题就是单调递增子序列的模型,dp[i]表示前i个任务可以得到的最优值.两层循 ...

  9. DP:Miking Time(POJ 3616)

    2015-09-21 奶牛挤奶 题目大意就是这只Bessie的牛产奶很勤奋,某农民有一个时刻表,在N时间内分成M个时间段,每个时间段Bessie会一直产奶,然后有一定的效益,并且Bessie产奶后要休 ...

最新文章

  1. Spring3.2.0-mybatis3.2.0 基于全注解搭建的后台框架-基础版
  2. python数据可视化库 动态的_python --数据可视化(一)
  3. k8s 命令 重启_快速入门Kubernetes(K8S)——资源清单
  4. 概率编程库Pymc3案例之线性回归
  5. 机器学习第4天:线性回归及梯度下降
  6. java axisclient超时_调用webservice接口超时
  7. Darkness Before the Dawn
  8. 人工智能云计算大数据物联网
  9. hdu 2896 病毒侵袭
  10. Linux 启动/重启/停止 MySQL 数据库的命令
  11. js mztreeview 双击事件_Mac下的Node.js安装教程
  12. 【洛谷P4315】月下“毛景树”(树链剖分)
  13. 用java写一个if语句
  14. 《从零开始学Swift》学习笔记(Day 39)——构造函数重载
  15. 自定义ZXing二维码扫描界面并解决取景框拉伸等问题
  16. 使用as3控制动画的播放与暂停
  17. FFPLAY的原理(三)
  18. 这首歌,竟然是AI生成的,太狠了...
  19. linux安装opencv让输入密码,Linux下安装OpenCV步骤
  20. perl语言入门:全局变量和私有变量

热门文章

  1. C++——重载运算符和重载函数
  2. JAVA JDK+Eclipse IDE for Java Developers下载
  3. setxor--求两个集合交集的非(异或)
  4. Python进阶09 动态类型
  5. Factorial Trailing Zeroes
  6. i love you 浪漫字体复制_2020高考英语全国I、II、III卷语篇来源!欢迎转发交流!...
  7. 复合五点高斯公式计算(Python实现)
  8. 关于Delphi中的字符串的详细分析
  9. HTTP协议超级详解
  10. JavaScript之创建对象的模式