POJ 3616 Milking Time
来源:互联网 发布:pc端护眼软件 编辑:程序博客网 时间:2024/04/30 22:15
/*2016年8月2日19:37:31 题意:你有一头奶牛,你能够在一定的时间段里挤奶。 而且挤奶量也不同,每次挤奶要休息r时间,问你最大可以挤多少奶。对时间段按照 开始时间进行排序 dp[i]表示在前 i个时间段挤奶 得到的最多奶 要注意 各个时间段的初始化不是0 而且dp[n]不一定是答案 因为有可能最后几段时间是有重合的 可能 dp[n-1] > dp[n] */#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#include <queue>#include <vector>#include <cmath>#include <stack>#include <map>#include <set>#define pi acos(-1)#define LL long long#define INF 0x3f3f3f3fusing namespace std;const int maxn = 1e5 + 5;struct Milk{ int sta, over, val;}milk[1005];int dp[1005];int cmp(Milk a, Milk b){ if (a.sta < b.sta) return 1; else return 0;}int main(void){//freopen("C:\\Users\\wave\\Desktop\\NULL.exe\\NULL\\in.txt","r", stdin); int n, m, r, ans, i, j; while(cin >> n >> m >> r) { for (i = 1; i <= m; i++) scanf("%d %d %d", &milk[i].sta, &milk[i].over, &milk[i].val); sort(milk+1, milk+1+m, cmp); for (i = 1; i <= m; i++) dp[i] = milk[i].val; for (i = 1; i <= m; i++){ for (j = 1; j < i; j++){ if (milk[i].sta >= milk[j].over + r) dp[i] = max(dp[i], dp[j] + milk[i].val); } } ans = -1; for (i = 1; i <= m; i++) ans = max(ans, dp[i]); cout << ans << endl; } return 0;}
0 0
- poj 3616 Milking Time
- POJ 3616 Milking Time
- POJ-3616-Milking Time
- poj 3616 Milking Time
- POJ 3616 Milking Time
- poj 3616 Milking Time
- Milking Time.(POJ-3616)
- POJ 3616 Milking Time
- POJ 3616 Milking Time
- POJ 3616 Milking Time
- POJ 3616 (milking time)
- POJ 3616 Milking Time
- POJ 3616 Milking Time
- poj 3616 Milking Time
- POJ 3616 Milking Time
- POJ 3616 Milking Time
- poj 3616 Milking Time
- POJ 3616 Milking Time
- POJ 2229 Sumsets(dp 递推)
- jmeter mysql 数据库测试
- 【HDU】-4514-湫湫系列故事——设计风景线(树的直径&&并查集)
- java.sql.SQLException: ORA-02290: 违反检查约束条件 (GZSYJ_MH.SYS_C0019581)
- HDU 4514 湫湫系列故事——设计风景线(连通分支,树的直径,并查集,环的判断)
- POJ 3616 Milking Time
- 高性能 CSS3 动画
- buddy内存分配算法浅析
- POJ 1742 Coins
- Android 面试总结
- HDU 1281 棋盘游戏-二分匹配
- Java正则表达式Matcher.group(int group)相关类解析
- POJ3181 Dollar Dayz
- 二叉树