【题目大意】

奶牛Bessie在0~N时间段产奶。农夫约翰有M个时间段可以挤奶,时间段[a,b]Bessie能挤到的牛奶量v。奶牛产奶后需要休息R小时才能继续下一次产奶,求Bessie最大的挤奶量。

【思路】

首先按各个时间段的开始时间进行排序。f[i]表示到第i个时间段位置挤奶量的最大值。

对于当前时间段,如果它之前的时间段的结束时间+休息时间≤当前时间段的开始时间(cow[j].e+r<=cow[i].s),那么进行比较(f[i]=max(f[i],f[j]+cow[i].v))。

【易错点】

注意f[i]的初值是cow[i].v,即只有当前时间段挤奶。

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
const int MAXN=+;
struct node
{
int s,e,v;
bool operator < (const node &x) const
{
return s<x.s;
}
}cow[MAXN];
int f[MAXN];
int n,m,r; int main()
{
scanf("%d%d%d",&n,&m,&r);
for (int i=;i<m;i++)
{
scanf("%d%d%d",&cow[i].s,&cow[i].e,&cow[i].v);
}
sort(cow,cow+m); for (int i=;i<m;i++) f[i]=cow[i].v;
for (int i=;i<m;i++)
for (int j=;j<i;j++)
{
if (cow[j].e+r<=cow[i].s)
f[i]=max(f[i],f[j]+cow[i].v);
} int ans=-;
for (int i=;i<m;i++) ans=max(ans,f[i]);
cout<<ans<<endl;
return ;
}

【动态规划】POJ3616-Milking Time的更多相关文章

  1. 动态规划 POJ3616 Milking Time

    #include <iostream> #include <cstdio> #include <algorithm> using namespace std; st ...

  2. poj3616 Milking Time(状态转移方程,类似LIS)

    https://vjudge.net/problem/POJ-3616 猛刷简单dp的第一天第二题. 这道题乍一看跟背包很像,不同的在于它是一个区间,背包是定点,试了很久想往背包上套,都没成功. 这题 ...

  3. POJ3616 Milking Time —— DP

    题目链接:http://poj.org/problem?id=3616 Milking Time Time Limit: 1000MS   Memory Limit: 65536K Total Sub ...

  4. POJ3616 Milking Time【dp】

    Description Bessie is such a hard-working cow. In fact, she is so focused on maximizing her producti ...

  5. poj-3616 Milking Time (区间dp)

    http://poj.org/problem?id=3616 bessie是一头工作很努力的奶牛,她很关心自己的产奶量,所以在她安排接下来的n个小时以尽可能提高自己的产奶量. 现在有m个产奶时间,每个 ...

  6. POJ3616 Milking Time 简单DP

    注意0,1,.....,N是时间点,i~i+1是时间段 然后就是思路:dp[i]代表到时间点 i 获得的最大价值, 1:dp[i]=max(dp[i],dp[s-r]+e),表示有以s为开头,i为结尾 ...

  7. poj3616 Milking Time

    思路: dp. 实现: #include <iostream> #include <cstdio> #include <algorithm> using names ...

  8. 《挑战程序设计竞赛》2.3 动态规划-基础 POJ3176 2229 2385 3616 3280

    POJ3176 Cow Bowling 题意 输入一个n层的三角形,第i层有i个数,求从第1层到第n层的所有路线中,权值之和最大的路线. 规定:第i层的某个数只能连线走到第i+1层中与它位置相邻的两个 ...

  9. 「kuangbin带你飞」专题十二 基础DP

    layout: post title: 「kuangbin带你飞」专题十二 基础DP author: "luowentaoaa" catalog: true tags: mathj ...

  10. 【POJ - 3616】Milking Time(动态规划)

    Milking Time 直接翻译了 Descriptions 贝茜是一个勤劳的牛.事实上,她如此​​专注于最大化她的生产力,于是她决定安排下一个N(1≤N≤1,000,000)小时(方便地标记为0. ...

随机推荐

  1. jQuery右侧悬浮楼层滚动 电梯菜单

    http://www.kaiu.net/effectCon.aspx?id=2198 <!doctype html> <html> <head> <meta ...

  2. Android中TextView设置字体

    最近项目中出现把字体设置成宋体,微软雅黑,黑体,楷体等的需求; 度娘发现Android系统默认支持三种字体,分别为:“sans”, “serif”, “monospace",除此之外还可以使 ...

  3. hdfs基本思想

    1.hdfs的优缺点 (1)不适合大量小文件存储: (2)不适合并发写入,不支持文件随机修改:(只能append追加) (3)不支持随机读等低延时的访问方式 2.基本思想 主从结构 主节点, name ...

  4. Part2-HttpClient官方教程-Chapter2-连接管理

    2.1 连接持久性 建立从一个主机到另一个主机的连接的过程相当复杂,并且涉及两个端点之间的多个分组交换,这可能相当耗时.连接握手的开销可能很大,特别是对于小型的HTTP消息. 如果可以重新使用开放连接 ...

  5. vim 实现括号以及引号的自动补全

    编辑文件/etc/vim/vimrc sudo vim /etc/vim/vimrc 在最后添加 inoremap ( ()<ESC>i inoremap [ []<ESC>i ...

  6. C函数前向声明省略参数

    这样的不带参数的函数声明,在c中是合法的,表示任意参数:当然我们自己写代码最好不要这样写了,但是读老代码还是会遇到: #include <stdio.h> void fun(); int ...

  7. mybaits-spring demo 记

    代码:https://github.com/bobby96333/demo_spring_batis /pom.xml <?xml version="1.0" encodin ...

  8. 将MongoDB安装成为Windows服务

    使用以下命令将MongoDB安装成为Windows服务.笔者的MongoDB目录为D:\Program Files\mongodb 切换到D:\Program Files\mongodb\bin> ...

  9. 如何消除类型是submit类型的按钮的默认文字 ‘确认提交’

    只需要加上value="" 即可.默认的文字就可以去掉了.

  10. linux命令(22):mkdir命令

    实例1:创建一个空目录 mkdir  test 实例2:递归创建多个目录 mkdir  -p /home/test 实例3:创建权限为777的目录 mkdir -m 777 test 实例4:创建新目 ...