POJ 3616 Milking Time 【DP】
题意:奶牛Bessie在0~N时间段产奶。农夫约翰有M个时间段可以挤奶,时间段f,t内Bessie能挤到的牛奶量e。奶牛产奶后需要休息R小时才能继续下一次产奶,求Bessie最大的挤奶量。
思路:一定是对时间段dp,然后就是两个for的事了。只要前面能满足条件的状态就可以转移过来,然后取最大,不过要先排序。
状态设定:dp[i]表示从开始取,到满足取第i段的最优值。
定义dp[i]表示第i个时间段挤奶能够得到的最大值,拆开来说,就是前面 i – 1个时间段任取0到i – 1个时间段挤奶,然后加上这个时间段(i)的产奶量之和。dp[i]满足如下递推关系
if(e[i].x>=e[j].y+r)
dp[i]=max(dp[i],dp[j]+e[i].w);
#include <iostream>
#include <cstdio>
#include <queue>
#include <math.h>
#include <string.h>
#include <string>
#include <algorithm>
using namespace std; struct eg
{
int x,y,w;
}e[1005]; bool cmp(eg a,eg b)
{
if(a.x==b.x)
return a.y<b.y;
return a.x<b.x;
} int main()
{
int n,m,r,dp[1005],ans;
scanf("%d%d%d",&n,&m,&r);
for(int i=0;i<m;i++)
{
scanf("%d%d%d",&e[i].x,&e[i].y,&e[i].w);
}
sort(e,e+m,cmp);
ans=0;
for(int i=0;i<m;i++)
dp[i]=e[i].w;
for(int i=0;i<m;i++)
{
for(int j=0;j<i;j++)
{
if(e[i].x>=e[j].y+r)
dp[i]=max(dp[i],dp[j]+e[i].w);
}
ans=max(ans,dp[i]);
}
printf("%d",ans);
return 0;
}
POJ 3616 Milking Time 【DP】的更多相关文章
- POJ 3280 Cheapest Palindrome【DP】
题意:对一个字符串进行插入删除等操作使其变成一个回文串,但是对于每个字符的操作消耗是不同的.求最小消耗. 思路: 我们定义dp [ i ] [ j ] 为区间 i 到 j 变成回文的最小代价.那么对于 ...
- POJ 3616 Milking Time (排序+dp)
题目链接:http://poj.org/problem?id=3616 有头牛产奶n小时(n<=1000000),但必须在m个时间段内取奶,给定每个时间段的起始时间和结束时间以及取奶质量 且两次 ...
- poj 3616 Milking Time (基础dp)
题目链接 http://poj.org/problem?id=3616 题意:在一个农场里,在长度为N个时间可以挤奶,但只能挤M次,且每挤一次就要休息t分钟: 接下来给m组数据表示挤奶的时间与奶量求最 ...
- poj 3616 Milking Time(dp)
Description Bessie ≤ N ≤ ,,) hours (conveniently labeled ..N-) so that she produces as much milk as ...
- POJ 1661 Help Jimmy【DP】
基础DP,过程想明白了其实也不复杂,从上面的推下面的比倒着推要简单很多.调试了半个多小时..简单dp依然不能快速AC..SAD.. 题目链接: http://poj.org/problem?id=16 ...
- POJ3616 Milking Time【dp】
Description Bessie is such a hard-working cow. In fact, she is so focused on maximizing her producti ...
- POJ 3616 Milking Time 简单DP
题意:奶牛Bessie在0~N时间段产奶.农夫约翰有M个时间段可以挤奶,时间段f,t内Bessie能挤到的牛奶量e.奶牛产奶后需要休息R小时才能继续下一次产奶,求Bessie最大的挤奶量. 详见代码 ...
- POJ 3616 Milking Time (字符串DP)
题意:找元素关于对角线左或右对称的最大矩阵 思路:左右对角线只需要遍历一条就可以了.只要当前点往上遍历和往后遍历一样就可以. #include<iostream> #include< ...
- POJ 2385 Apple Catching【DP】
题意:2棵苹果树在T分钟内每分钟随机由某一棵苹果树掉下一个苹果,奶牛站在树#1下等着吃苹果,它最多愿意移动W次,问它最多能吃到几个苹果.思路:不妨按时间来思考,一给定时刻i,转移次数已知为j, 则它只 ...
随机推荐
- (二)Git时间--版本控制工具进阶
1. 忽略文件 Git 会检查代码仓库的目录下是否存在一个名为 .gitignore的文件,如果存在的话,就去一行行读取这个文件中的内容,并把每一行指定的文件或目录 排除 在版本 控制之外. 注意,. ...
- 02-MySQL的安装和配置
1. 软件和环境 注:安装MySQL数据库的操作系统必须保证有.NET环境和VC运行库的支持. 下载地址:百度云网盘链接 2. MySQL服务器安装详细步骤 (1). 选择安装类型 这里我们选择 ...
- Javaweb学习笔记——(二)——————CSS概述,进入JavaScript
day02day01内容回顾 1.html操作思想 **使用标签把要操作的数据包起来,通过修改标签的属性值来是实现标签内数据样式的变化 ***<font size="5"&g ...
- DCNN models
r egion based RNN Fast RCNN Faster RCNN F-RCN Faster RCNN the first five layers is same as the ZF ne ...
- C# 密封类使用sealed修饰
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace @sea ...
- 下拉框combobox用法&级联餐单
如果下来内容不用后台取数据,直接写死的话不用url属性,直接用data即可: <input id="orderstate" name="orderstate&quo ...
- Hibernate5.4的环境搭建
(1)项目中添加Hibernate依赖 <dependency> <groupId>org.hibernate</groupId> <artifactId&g ...
- k64 datasheet学习笔记3---Chip Configuration之System modules
1.前言 本文主要介绍芯片配置的系统模块的内容 2.SIM配置 TODO 3.SMC配置 TODO 4.PMC配置 TODO 5.LOW-LEAKAGE WAKEUP单元配置 TODO 6.MCM配置 ...
- Linux系统无线网卡的安装【转】
转自:http://www.linuxidc.com/Linux/2013-03/81473.htm 现在的很多的可移动无线网卡都是usb接口的,把这种网卡应用到windows操作系统上是很容易就能起 ...
- Android APP—— 开发入门教程
一.SDK下载 下载:adt-bundle-windows-x86_64-20140702.zip(20140702 已经是最后版本了) 解压出来如下: 点击Eclipse安装 创建一个新的工作空间安 ...