#6957. 货币总和(Money Sums)
货币总和(Money Sums)
货币总和(Money Sums)
**时间限制:**1.00 秒 **内存限制:**512 MB
题目描述
你有 (n) 枚硬币,每枚硬币都有一个面值。请找出使用这些硬币能够组成的所有不同金额。
每枚硬币最多使用一次。输出的金额不包括 (0)。
输入格式
第一行包含一个整数 (n),表示硬币的数量。
第二行包含 (n) 个整数 (x_1,x_2,\ldots,x_n),表示每枚硬币的面值。
输出格式
第一行输出一个整数 (k),表示可以组成的不同金额数量。
第二行按从小到大的顺序输出这 (k) 个金额。
数据范围
样例输入
4
4 2 5 2
样例输出
9
2 4 5 6 7 8 9 11 13
| 测试点编号 | 层级 | n |
硬币总额 | 特殊性质 | 覆盖点与设计目的 |
|---|---|---|---|---|---|
| 1 | 弱数据 | 1 | 最小规模、最小正面值 | 检查单枚硬币及 DP 初始状态 | |
| 2 | 4 | 20 | 所有面值均为 5 | 检查重复面值能否分别使用,以及不可达金额是否被排除 | |
| 3 | 正常数据 | 15 | 重复面值与金额空档并存 | 检查非连续子集和、重复硬币及输出顺序 | |
| 4 | 7 | 61 | 输入无序、组合较密集但不完全连续 | 检查一般混合组合及遗漏金额的识别 | |
| 5 | 强数据 | 15 | 32767 | 面值为连续的 2 的幂 | 所有 1~32767 均可组成,检查较大 DP 区间、计数和长输出 |
相关
在以下作业中: