HDU 4502
来源:互联网 发布:evisu淘宝正品 编辑:程序博客网 时间:2024/06/09 21:40
吉哥系列故事——临时工计划
动态规划:dp[i]表示i天为止获得的最大工资。
转移方程:dp[i] = max{dp[i-1], dp[i], dp[ s[j] - 1 ]+ c[j]},其中e[j] = i;
#include <cstdio>#include <cstring>#include <vector>#include <algorithm>using std::memset;using std::vector;using std::sort;const int MAXM = 101;const int MAXN = 1001;vector<int> timeline[MAXM];struct JOB{ int s,e,c;}job[MAXN];int n, m, t, dp[MAXM];bool cmp(JOB a, JOB b){ return a.e < b.e;}int max(int a,int b){ return a<b?b:a;}int main(){ scanf("%d", &t); while(t--) { scanf("%d%d", &m, &n); for(int i = 0; i < n; i++) { scanf("%d%d%d", &job[i].s, &job[i].e, &job[i].c); } sort(job, job+n, cmp); for(int i = 0 ; i < MAXM; i++) { timeline[i].clear(); } for(int i = 0 ; i < n; i++) { if(job[i].e <= m) timeline[job[i].e].push_back(i); } memset(dp, 0, sizeof(dp)); for(int i = 1; i <= m; i++) { int v1 = dp[i-1]; for(int j = 0 ; j < timeline[i].size(); j++) { JOB temp = job[timeline[i][j]]; if(temp.s >= 1) { v1 = max(v1, dp[temp.s - 1] + temp.c); } } dp[i] = max(v1, dp[i]); } int ans = 0; for(int i = 1; i <= m; i++) { ans = max(ans, dp[i]); } printf("%d\n", ans); }}
- HDU 4502
- HDU 4502
- hdu(4502)
- hdu 4502
- hdu 4502
- hdu 4502
- hdu 4502(dp)
- hdu 4502(DP)
- hdu 4502 dp小水题
- hdu 4502 DP
- HDU 4502 简单DP
- HDU 4502 DP
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- 有关BASE64编码的需要注意的事项
- Repo和Git 版本管理常用命令
- R语言笔记1
- 【Android内存机制分析】了解Android堆和栈
- 这几天写的存储过程语句进行备份下
- HDU 4502
- N-Queens II
- D3DXCreateTextureFromFileInMemoryEx函数
- MySQL千万级 重复数据查找及删除方案
- NodeManager启动错误
- 自定义标签(tag)
- QQ互联redirect uri is illegal(100010)!
- (Problem 28)Number spiral diagonals
- ognl.OgnlException: target is null for setProperty