原题连接:http://codeforces.com/problemset/problem/864/E

题意:一个人想从大火中带走一些东西。每次他只能带一个,耗时ti ,价值为pi, 当总时间超过di时不能被带走。问他如何按顺序带走物品使价值总和最大。

思路:背包问题。分为取和不取两种情况1.dp[i][j]=max(dp[i-1][j], dp[i-1][j-t]+p), j<d;

                  2.dp[i][j]=max(dp[i-1][j], dp[i][j]);

AC代码:

 #include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
struct G{
int t,d,v;
int id;
}g[];
int dp[][];
bool vis[][];
bool cmp(G a, G b){
return a.d<b.d;
}
int main()
{
int n,maxx=;
scanf("%d", &n);
memset(dp, , sizeof(dp));
memset(vis, , sizeof(vis));
for(int i=;i<=n;i++){
scanf("%d %d %d", &g[i].t, &g[i].d, &g[i].v);
g[i].id=i;
maxx=max(maxx, g[i].d);
}
sort(g+, g+n+, cmp);
int b;
for(int i=;i<=n;i++){
b=;
for(int j=;j<=maxx;j++){
if(j>=g[i].t&&j<g[i].d&&dp[i-][j]<dp[i-][j-g[i].t]+g[i].v){
dp[i][j]=dp[i-][j-g[i].t]+g[i].v;
vis[i][j]=;
}
else dp[i][j]=dp[i-][j];
if(dp[i][j]>=dp[i][b]) b=j;
}
}
printf("%d\n", dp[n][b]);
vector<int> ans;
for(int i=n;i;i--){//反推,得到最优取法
if(vis[i][b]){
ans.push_back(g[i].id);
b-=g[i].t;
}
}
printf("%d\n", ans.size());
for(int i=ans.size()-;i>=;i--) printf("%d ",ans[i]);
return ;
}

最新文章

  1. Javassist 通用工具之 CodeInjector
  2. eafier 簡單易用 HTML、CSS 網頁編輯器(可自動插入 Tag 標籤)
  3. 【转】FlashBack总结之闪回查询与闪回表
  4. 用 Inkspace 做 SVG 给 TPath
  5. [转]easyui datagrid 批量编辑和提交
  6. HDU 4649 Professor Tian(DP)
  7. css :after和:before
  8. 今天学习的裸板驱动之GPIO实验学习心得
  9. 关于理解python类的小题
  10. SQL Server之LEFT JOIN、RIGHT LOIN、INNER JOIN的区别
  11. vim批量注释
  12. spring之p命名空间注入
  13. java实现网页结构分析列表发现
  14. 机器学习入门-文本特征-word2vec词向量模型 1.word2vec(进行word2vec映射编码)2.model.wv[&#39;sky&#39;]输出这个词的向量映射 3.model.wv.index2vec(输出经过映射的词名称)
  15. mtr网络连通性测试
  16. loop设备及losetup命令
  17. Django 中 python manage.py makemigrations 与 python manage.py migrate
  18. ZooKeeper系列(1) 整体介绍(转)
  19. python伪装网页访问
  20. MySql 赋值操作符&quot;=&quot;与&quot;:=&quot;

热门文章

  1. TFS 删除工作区签出状态
  2. mysql驱动表与被驱动表及join优化
  3. JPA-style positional param was not an integral ordinal 异常
  4. OSPF与ACL 综合应用
  5. 发布项目到github上web服务器来运行
  6. tensorflow学习笔记一----------tensorflow安装
  7. Django @csrf_exempt不适用于基于通用视图的类(Django @csrf_exempt does not work on generic view based class)
  8. 03.AutoMapper 之反向映射与逆向扁平化(Reverse Mapping and Unflattening)
  9. linux的管道 |和grep命令以及一些其他命令(diff,echo,cat,date,time,wc,which,whereis,gzip,zcat,unzip,sort)
  10. 公用flex类