01背包问题动态规划应用

acm1881毕业bg

将必须离开的时间限制看作背包容量,先将他们由小到大排序,然后在排完序的数组中对每个实例都从它的时间限制开始(背包容量)到它的延长时间进行遍历;

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cstring>
 4 using namespace std;
 5 struct BG
 6 {
 7     int h,t,l;
 8     friend bool operator<(BG a,BG b)
 9     {
10         return a.l<b.l;
11     }
12 };
13 BG *bg;
14 int main()
15 {
16     int n,m;
17     int value[3500];
18     while(cin>>n&&n>=0)
19     {
20         m=0;
21         if(n==0)
22         {
23             cout<<0<<endl;
24             continue;
25         }
26         bg=new BG[n];
27         memset(value,0,sizeof(value));
28         for(int i=0;i<n;i++)
29         {
30             cin>>bg[i].h>>bg[i].t>>bg[i].l;
31             m=(bg[i].l>m)?bg[i].l:m;
32         }
33         sort(bg,bg+n);
34         for(int i=0;i<n;i++)
35         {
36             for(int j=bg[i].l;j>=bg[i].t;j--)
37             {
38                 value[j]=max(value[j],value[j-bg[i].t]+bg[i].h);
39             }
40         }
41         int ans=0;
42         for(int i=0;i<=m;i++)
43         {
44             if(value[i]>ans)ans=value[i];
45         }
46         cout<<ans<<endl;
47     }
48     return 0;
49 }

转载于:https://www.cnblogs.com/sytu/p/3871549.html

ACM1881 01背包问题应用相关推荐

  1. c语言-01背包问题

    01背包问题 问题:有N件物品和一个容量为V的背包.第i件物品的费用是c[i],价值是w[i].求解将哪些物品装入背包可使价值总和最大. 分析: 这是最基础的背包问题,特点是:每种物品仅有一件,可以选 ...

  2. 三十四、动态规划解决01背包问题

    一.动态规划算法介绍 动态规划算法的核心思想是:将大问题划分为小问题进行解决,从而一步一步获取最优解的处理算法. 动态规划算法与分治算法类似,其基本思想是将待求解的问题分解成若干个子问题,先求子问题, ...

  3. python 回溯法 子集树模板 系列 —— 3、0-1背包问题

    问题 给定N个物品和一个背包.物品i的重量是Wi,其价值位Vi ,背包的容量为C.问应该如何选择装入背包的物品,使得放入背包的物品的总价值为最大? 分析 显然,放入背包的物品,是N个物品的所有子集的其 ...

  4. poj3624 Charm Bracelet DP 01背包问题

    题目链接:http://poj.org/problem?id=3624 01背包问题,接触DP的第一题. 1 ///2014.4.10 2 ///poj3624 3 4 #include <io ...

  5. 【基础算法复习】01背包问题(一)

    一.绪论 01背包问题是一个经典的动态规划问题,问题描述为"有n个物品,其价值分别为v[n],要求将其装在承重为m的背包,每个物品只能装一次的情况下,在不超过承重的范围下价值最大" ...

  6. C++~回溯+贪心法解决01背包问题

    C++~回溯+贪心法解决01背包问题 参考文章: (1)C++~回溯+贪心法解决01背包问题 (2)https://www.cnblogs.com/rimochiko/p/8168638.html 备 ...

  7. 0-1背包问题 动态规划java_C#使用动态规划解决0-1背包问题实例分析

    // 利用动态规划解决0-1背包问题 using System; using System.Collections.Generic; using System.Linq; using System.T ...

  8. 算法导论——动态规划:0-1背包问题(完全解)

    2019独角兽企业重金招聘Python工程师标准>>> package org.loda.dynamic;import org.junit.Test;/*** * @ClassNam ...

  9. 动态规划之 0-1背包问题及改进

    有N件物品和一个容量为V的背包.第i件物品的重量是w[i],价值是v[i].求解将哪些物品装入背包可使这些物品的重量总和不超过背包容量,且价值总和最大.在选择装入背包的物品时,对于每种物品i,只能选择 ...

最新文章

  1. 你不需要jQuery(四)
  2. 关于Windows Vista的系统修复
  3. 因果推断研究获2021诺贝尔经济学奖,图灵奖得主Judea Pearl祝贺并反对
  4. vue 前端显示图片加token_手摸手,带你用vue撸后台 系列二(登录权限篇)
  5. Android 13 第一个开发者版本来了,网友直呼:Android 12 还没玩透!
  6. ElementUI:nav收起后点击后出现黑色边框
  7. 广告管理系统的UML分析与设计
  8. 跳槽进阿里了,面试阿里P6也没那么难。
  9. win7系统ftp服务器密码修改,win7ftp服务器设置用户名密码设置
  10. 爬虫实例:唐诗宋词爬虫
  11. 云之讯实现发送短信验证码(python版本)
  12. linux如何配浏览器证书,部署国密SSL证书,如何兼容国际主流浏览器?
  13. HTTP状态码302分析
  14. 翻译连载 | JavaScript轻量级函数式编程-第4章:组合函数 |《你不知道的JS》姊妹篇
  15. 零售金融的数字化转型,金易联拥抱流量平台、提供在线展业服务
  16. argc和argv的说明
  17. EV录屏有很大电流音的解决方法
  18. C语言绘图示例-分色调图20例
  19. Office2007 Word 中出现乱码
  20. 【广外女生】远程监控2008版b3.30

热门文章

  1. 将Eclipse中Web项目打成war包
  2. 使用 Go module 后 VScode 智能提示不生效解决方案
  3. pyspark汇总小结
  4. pytorch利用多个GPU并行计算多gpu
  5. Mysql分页order by数据错乱重复
  6. DSP与CEVA芯片
  7. CVD和ALD薄膜沉积技术应用领域
  8. MLIR(Multi-Level Intermediate Representation Compiler)架构 Infrastructure
  9. 三维场景图:用于统一语义、三维空间和相机的结构
  10. 2021年大数据Hadoop(十四):HDFS的高可用机制