首页 > 其他分享 >通天之分组背包

通天之分组背包

时间:2024-07-10 12:20:41浏览次数:8  
标签:背包 通天 int h3 long h2 分组 1001 dp

https://www.luogu.com.cn/problem/P1757

 1 #include <stdio.h>
 2 #include <iostream>
 3 #include <algorithm>
 4 using namespace std;
 5 
 6 int h1[1001];
 7 int h2[101];//每组物品数量
 8 int h3[101][1001];//每组中每个物品的重量
 9 int h4[101][1001];//每组中每个物品的价值
10 long dp[1001];
11 
12 long maxlong(long m, long n) {
13     if (m > n)return m;
14     else return n;
15 }
16 
17 int main() {
18     int n,m;
19     cin >> m >> n;
20 
21     int zushu = 0;
22     for (int i = 1; i <= n; i++) {
23         int l, k, x;
24         cin >> l>>k>>x;
25 
26         zushu = max(zushu, x);
27         h2[x]++;
28         h3[x][h2[x]] = l;
29         h4[x][h2[x]] = k;
30     }
31 
32     for (int i = 1; i <= zushu; i++) {
33         for (int j = m; j >= 0; j--) {
34             for (int k = 1; k <= h2[i]; k++) {
35                 if (j >= h3[i][k]) {
36                     dp[j] = maxlong(dp[j - h3[i][k]] + h4[i][k], dp[j]);
37                 }
38             }
39         }
40     }
41 
42     cout << dp[m];
43     return 0;
44 }

 

标签:背包,通天,int,h3,long,h2,分组,1001,dp
From: https://www.cnblogs.com/saucerdish/p/18293793

相关文章

  • 背包题型总结
    概述大致分为以下几类:01背包完全背包混合背包二维背包分组背包以及一个变式:跳楼梯模型,本质是转移顺序的改变。01背包特点:无序加入,每个物品加一次。完全背包特点:无序加入,每个物品无限加。变式:跳楼梯模型:问跳完一段楼梯有多少种不同的方案数。这两者的区别就在于:......
  • 动态规划入门/背包
    投资的最大效益题目背景约翰先生获得了一大笔遗产,他暂时还用不上这一笔钱,他决定进行投资以获得更大的效益。银行工作人员向他提供了多种债券,每一种债券都能在固定的投资后,提供稳定的年利息。当然,每一种债券的投资额是不同的,一般来说,投资越大,收益也越大,而且,每一年还可以根据资金......
  • Day 40 |完全背包 、518. 零钱兑换 II、377. 组合总和 Ⅳ、70. 爬楼梯 (进阶)
    完全背包视频讲解:https://www.bilibili.com/video/BV1uK411o7c9https://programmercarl.com/背包问题理论基础完全背包.html思考完全背包的物品可以无限选择,遍历顺序和01背包相反,背包需要正向遍历。deftest_CompletePack():weight=[1,3,4]value=[15,20,30......
  • 背包问题大合集
    dp背包3步曲1.确定dp[i][v]的含义(一维的话是dp[v]):在0…i的物品中,体积为v的背包中,能够拿到的最大价值为dp[i][v]。2.求关系式不拿物品:(物品数量减少)一维:dp[v]二维:dp[i][v]=dp[i-1][v]拿:(物品数量减少,背包体积减物品体积)一维:dp......
  • P7224 [RC-04] 子集积 (背包 dp + 复杂度优化)
    P7224[RC-04]子集积背包dp+复杂度优化考虑dp。容易想到背包dp,设\(f_{i,j}\)表示考虑了前\(i\)个,当前乘积为\(j\)的方案数。枚举\(a_i\)的倍数转移。复杂度\(O(\sum\limits_{i=1}^n\frac{m}{a_i})\)。如果\(a_i\)互不相同,那么近似于\(O(m\lnm)\)。如果还想......
  • DP:完全背包问题
    文章目录......
  • 基于 .net core 8.0 的 swagger 文档优化分享-根据命名空间分组显示
    前言公司项目是是微服务项目,网关是手撸的一个.netcorewebapi项目,使用refit封装了20+服务SDK,在网关中进行统一调用和聚合等处理,以及给前端提供swagger文档在我两年前进公司的时候,文档还能够顺滑的打开,在去年的时候文档只能在本地打开,或者访问原始的swagger页面,knife......
  • 数据传输方式:电路交换、报文交换、分组交换
     电路交换、报文交换、分组交换是通信网络中三种基本的数据传输方式,它们各有特点,适用于不同的通信场景。下面分别对这三种交换方式进行简要说明:1.电路交换(CircuitSwitching)原理:在数据传输前,首先在通信双方之间建立一条专用的物理连接(电路)。这条路径上的资源(如带宽)在连接......
  • 背包问题
    背包问题背包,即询问一个背包装最大价值的物品总价值。01背包例题:P1048采药想到使用DP。\[f_{i,j}=\left\{\begin{matrix}\maxf_{i-1,j-c_i},f_{i-1,j}&j\gec_i\\f_{i-1,j}&j<c_i\end{matrix}\right.\](公式中,\(f_{i,j}\)表示使用前\(i\)个物品,重量小......
  • 背包DP——依赖背包
    依赖背包部分物品对其他物品有依赖性,即在拥有b前,必须拥有a;其本质是分组背包,不过具有特殊性,即依赖条件先来看简单依赖(存在b依赖a,但不存在c依赖b)在选择时,要么只选a,要么选a和依赖a的部分/全部解法,对每个选的集合分组,组内冲突(只能选一个),重新构造01背包的数据对于小依赖,直接枚举......