POJ 3616 Milking Time(DP)
来源:互联网 发布:卡巴斯基 知乎 编辑:程序博客网 时间:2024/05/27 09:46
http://poj.org/problem?id=3616
题意:给出一些牛开始产奶和结束产奶的时间还有他们能产出的价值,每时每刻只能有一头牛产奶而且相邻的产奶的两头牛必须经过R小时,问能获得的最大产奶价值是多少。
解法:DP,我是直接暴力去找每头牛前面满足结束时间last.end <= now.start - r的牛,取max,更新。
代码如下:
#include<cstdio>#include<iostream>#include<algorithm>using namespace std;int dp[1000005]; struct node {int s, e, val;}cow[1005];bool cmp(node a, node b) {if(a.e == b.e) {if(a.s == b.s)return a.val > b.val;return a.s < b.s; }return a.e < b.e;}int main() {int n, m, r;cin >> n >> m >> r;for(int i = 1; i <= m; i++) {scanf("%d%d%d", &cow[i].s, &cow[i].e, &cow[i].val);}sort(cow + 1, cow + m + 1, cmp);for(int i = 1; i <= m; i++) {dp[i] = dp[i - 1];if(cow[i].s - r >= 0) {int tmp = cow[i].s - r;int j = i - 1;for(; j > 0; j--) {if(cow[j].e <= tmp)dp[i] = max(dp[i], dp[j] + cow[i].val);}}dp[i] = max(dp[i], cow[i].val);}cout << dp[m] << "\n";return 0;}
阅读全文
0 0
- 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】
- POJ - 3616 Milking Time(Dp)
- POJ 3616 Milking Time (DP)
- 使用LoadBalancerClient就行服务消费
- spring学习之---Annotation
- 前端试题大综合练习(三)
- adc mda 的一些配置,,,非常感谢分享
- 无锁编程:lock-free原理;CAS;ABA问题
- POJ 3616 Milking Time(DP)
- jquery中关于属性的学习
- SlidingPaneLayout
- 前后分离--异常回调
- Codeforces 340E 错排问题dp
- CSS定位样式
- 解决maven mybatis generator只生成insert方法
- 全球十大最美旅游胜地,你心动了吗?
- 初识dubbo(阿里巴巴分布式服务框架)