洛谷5020(完全背包)

排个序,从小到大扫,如果当前这个不能被前面那些小的表示,则加入货币系统。与bzoj某权限的一道POI题有点像,只是那题只能用一次。

 1 int T, n, a[105];
 2 
 3 int main() {
 4     for (read(T); T; T--) {
 5         read(n);
 6         int mx = 0, ans = 0;
 7         rep(i, 1, n)    read(a[i]), mx = max(mx, a[i]);
 8         sort(a + 1, a + 1 + n);
 9         bitset<25005> bt;
10         bt.reset(); bt.set(0);
11         rep(i, 1, n) {
12             if (!bt.test(a[i])) {
13                 ans++;
14                 for (int j = 1; j * a[i] <= mx; j++)
15                     bt |= bt << a[i];
16             }
17         }
18         writeln(ans);
19     }
20     return 0;
21 }

 

转载于:https://www.cnblogs.com/AlphaWA/p/10534172.html

<think>好的,用户现在在找洛谷平台上关于分组背包算法的题单或者练习题集合。根据之前的对话,用户可能已经了解过一些贪心算法和动态规划的内容,比如引用[1]里提到的Java题解和引用[2]里的杨校老师课堂的背包DP练习题。现在用户明确提到了分组背包,我需要先确认分组背包的基本概念,然后根据现有的引用信息,特别是引用[2]中的题号列表,来提供相关的练习题。 首先,分组背包是动态规划中的一种变体,特点是物品被分成若干组,每组内的物品互斥,只能选一个或者不选。这点需要明确,用户可能需要先理解这个算法,再做题巩固。 引用[2]中提到的分组背包题号包括P1757、P1064、P2066、P1455,这些应该是洛谷的题目编号。我需要检查这些题号是否正确对应分组背包的问题,确保没有错误。比如P1757是“通天之分组背包”,这显然是分组背包的典型题目。P1064是金明的预算方案,可能需要将主件和附件视为一组,每组有多个选择。P2066是“机器分配”,可能涉及分组选择。P1455是搭配购买,可能用并查集预处理后再进行分组背包。这些题目都是分组背包的经典题,适合用户练习。 接下来,用户可能需要题单,而不仅仅是单个题目。洛谷的题单功能中是否有专门的背包DP或分组背包的合集呢?根据引用[2]中的信息,用户提到的杨校老师课堂的题单里有分组背包的部分,但用户现在可能需要直接在洛谷上找到这些题单。我需要确认洛谷是否有官方或用户创建的题单包含这些题目。 另外,用户可能希望得到每个题目的简要说明,比如考察点和难度,这样他们可以有针对性地练习。比如P1757是模板题,适合入门;P1064需要结合依赖关系进行处理,可能稍难;P1455结合并查集,是分组背包的变种应用,适合提高。这样的分类可以帮助用户逐步提升。 同时,用户可能需要一些学习建议,比如先掌握0-1背包完全背包,再学习分组背包,以及如何高效地处理分组问题。此外,注意事项如循环顺序(先枚举组,再体积,最后组内物品)也很重要,避免常见的错误。 最后,确保回答中提到的题号正确,并且引导用户参考洛谷的对应题目页面获取详细信息和题解。如果有其他相关题单,比如“算法1-6:动态规划的背包问题”等,也值得推荐,帮助用户系统学习。</think>根据洛谷平台的题库结构和相关算法分类,以下是针对分组背包算法的推荐题单及核心练习题整理: --- ### 一、分组背包算法核心练习题 1. **P1757 通天之分组背包** - **标签**:模板题/基础训练 - **考察点**:标准分组背包实现,每组物品只能选其一 - **代码框架**: ```python for 所有组: for 体积从大到小: for 组内物品: dp[v] = max(dp[v], dp[v - w[i]] + v[i]) ``` 2. **P1064 金明的预算方案** - **标签**:依赖关系处理 - **考察点**:主件+附件构成分组,每组包含主件单独选、主件+附件1、主件+附件2等组合方式[^2] 3. **P2066 机器分配** - **标签**:分组模型转换 - **考察点**:将公司看作组,机器数量为组内选择,需输出具体方案 4. **P1455 搭配购买** - **标签**:并查集预处理 - **考察点**:先用并查集合并关联商品形成分组,再转化为分组背包问题 --- ### 二、推荐题单路径 1. **洛谷官方题单** - **算法1-6:动态规划的背包问题** 包含0-1背包完全背包、多重背包、分组背包等分类练习题,覆盖所有背包变种[^2] 2. **用户创建题单** - **动态规划专题训练**(搜索关键词:分组背包) 通常包含P1757、P1064等经典题目及变种题型 --- ### 三、学习建议 1. **先修知识** - 熟练掌握0-1背包(P1048)、完全背包(P1616)后再学习分组背包 2. **刷题顺序** - 模板题 → 依赖关系题 → 预处理综合题 3. **注意事项** - 循环顺序必须为 **组→体积→组内物品** - 若要求每组必选一个物品,需初始化`dp`数组为`-inf` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值