POJ 3616 Milking Time(简单DP)
来源:互联网 发布:vnc server windows 编辑:程序博客网 时间:2024/05/16 06:35
传送门:POJ3616
题意:在n小时内有m个时间段可以得到一些牛奶,每两次之间有一个休息时间,求最后获得的最大的牛奶的值。
题解:首先按结束时间排序,再赋初值:dp[i]=t[i].des,然后加上休息时间进行dp,当结束时间加上休息时间小于等于下一次的开始时间时加权值,否则继续循环。注意:休息时间可能大于下一段的时间。
#include <iostream>#include <algorithm>#include <cstring>using namespace std;struct time{ int start,endd,des;}t[1005];bool cmp(time a,time b){ return a.endd<b.endd;}int main(){ int n,m,r,i,j,ans; int dp[1005]; while(cin>>n>>m>>r) { memset(dp,0,sizeof(dp)); for(i=1;i<=m;i++) cin>>t[i].start>>t[i].endd>>t[i].des; sort(t+1,t+m+1,cmp); for(i=1;i<=m;i++) dp[i]=t[i].des; for(i=1,ans=0;i<=m;i++) { for(j=0;j<i;j++) { if(t[j].endd+r<=t[i].start) { dp[i]=max(dp[i],dp[j]+t[i].des); ans=max(ans,dp[i]); } } } cout<<ans<<endl; } return 0;}
0 0
- POJ 3616 Milking Time(简单DP)
- Milking Time (poj 3616 简单DP)
- POJ 3616 Milking Time 简单DP
- POJ 3616 Milking Time (dp)
- POJ 3616 Milking Time(DP)
- POJ 3616 Milking Time(区间DP)
- POJ 3616 Milking Time(基础DP)
- POJ 3616 Milking Time(DP)
- poj 3616 Milking Time(dp)
- POJ 3616 Milking Time (基础DP)
- poj 3616 Milking Time DP
- POJ 3616 Milking Time DP
- poj-3616 Milking Time 【DP】
- poj 3616 Milking Time DP
- DP-POJ-3616-Milking Time
- poj 3616 Milking Time 【dp】
- [POJ 3616]Milking Time[DP]
- Poj 3616 Milking Time【dp】
- 将Ogre写入MFC框架中
- EOJ 1855 Solution Report - Expedition
- 如何检测内存泄露
- GridCtrl使用详解
- Qt学习之路(23): 自定义事件
- POJ 3616 Milking Time(简单DP)
- 如何更好地限制一个UITextField的输入长度
- 解决Win7-IE11保护模式下跨域写cookie的问题
- 设计模式--中介者模式Mediator(行为型)
- 把C盘格式化过,后来发现运行不了JAVA,是怎么回事?
- ubuntu安装jdk 1.6
- android 启动相机拍照并发送微博。
- 怎么恢复三星全智能手机数据
- 制作一个链表的方法