Codeforces Round #436 E.Fire(01背包 + 输出路径)
来源:互联网 发布:痘痘变硬了怎么办知乎 编辑:程序博客网 时间:2024/06/10 14:10
题目链接:Fire
#include <iostream>#include <cstdio>#include <fstream>#include <algorithm>#include <cmath>#include <deque>#include <vector>#include <queue>#include <string>#include <cstring>#include <map>#include <stack>#include <set>#define Max(a,b) a>b?a:b#define Min(a,b) a>b?b:a#define mem(a,b) memset(a,b,sizeof(a))using namespace std;typedef long long ll;int dir[4][2]= {{1,0},{-1,0},{0,1},{0,-1}};const double eps = 1e-6;const double Pi = acos(-1.0);const int INF=0x3f3f3f3f;struct Node{ int d,t,p,id;}node[210];struct DP{ int val; vector<int> vv;}dp[115][2100];bool cmp(Node a, Node b){ if(a.d == b.d){ return a.t < b.t; } return a.d < b.d;}int main(){ int T,n; int a,b,c; while(~scanf("%d",&n)){ int cnt = 0; for(int i = 1; i <= n; i++){ scanf("%d%d%d",&a,&b,&c); if(a >= b) continue; node[++cnt].t = a; node[cnt].d = b; node[cnt].p = c; node[cnt].id = i; } for(int i = 0; i < 115; i++){ for(int j = 0; j < 2100; j++) dp[i][j].val = 0, dp[i][j].vv.clear(); } sort(node+1,node+1+n,cmp); for(int i = 1; i <= n; i++){ for(int j = 0; j < node[i].d; j++){ dp[i][j] = dp[i-1][j]; if(j >= node[i].t){ if(dp[i][j].val < dp[i-1][j-node[i].t].val + node[i].p){ dp[i][j] = dp[i-1][j-node[i].t]; dp[i][j].val = dp[i-1][j-node[i].t].val + node[i].p; dp[i][j].vv.push_back(node[i].id); } } } } int ans = 0, pp = -1; for(int j = 0; j <= 2000; j++){ if(ans < dp[n][j].val) ans = dp[n][j].val, pp = j; } printf("%d\n",ans); printf("%d\n",dp[n][pp].vv.size()); for(int i = 0; i < dp[n][pp].vv.size(); i++){ printf("%d ",dp[n][pp].vv[i]); } } return 0;}
阅读全文
0 0
- Codeforces Round #436 E.Fire(01背包 + 输出路径)
- Codeforces Round #436 (Div. 2)-E-Fire(01背包输出路径)
- Codeforces Round #436 (Div. 2) E. Fire(01背包+输出路径)
- Codeforces 864E (Codeforces Round #436 (Div. 2)) E. Fire 背包输出路径
- Codeforces Round #436 (Div. 2) E. Fire(背包DP+输出路径)
- 【01背包 && 记录路径 && 约束】Codeforces Round #436 (Div. 2) E. Fire
- Codeforces Round #436 (Div. 2)-背包&排序&输出状态-E. Fire
- Codeforces Round #436 E. Fire
- CF864E:E. Fire(01背包 & 路径输出)
- Codeforces Round #436 (Div. 2) E. Fire (有放入顺序有关的01背包)
- Codeforces 862 E. Fire (01背包)
- Codeforces 864E Fire(01背包)
- Codeforces Round #436 (Div. 2) E. Fire
- Codeforces Round #436 (Div. 2)E.Fire
- Codeforces Round #436 (Div. 2)E. Fire
- Codeforces Round #436 (Div. 2) E. Fire
- Codeforces Round #436 (Div. 2) E fire DP
- Codeforces Round #436 (Div. 2) 864E. Fire
- bzoj 1123(tarjan)
- JAVA实纪1-this关键字
- 图的常见储存方式
- 构造发生事
- CodeWarrior for S12X 调试器的D-Flash编程支持
- Codeforces Round #436 E.Fire(01背包 + 输出路径)
- ros的全局把握
- 2017年10月11日一点点人生感悟~人一定要靠自己
- 比较总结线性表的几种主要存储结果
- hihocoder 1014 Trie树
- hdu 5521 Meeting(优先队列+dijkstra)(建图思想)
- 手动部署 使用 bluestore 后端的 osd (L版)
- 【LeetCode】C# 39、Combination Sum
- CodeForces 868B Race Against Time