多重背包计数问题 —— 硬币组合方案数
Submit solution
Points:
150
Time limit:
1.0s
Memory limit:
4M
Author:
Problem type
Allowed languages
C, C++
💰 多重背包计数问题 —— 硬币组合方案数
📝 题目描述
小明有若干种不同面额的硬币,每种硬币的数量有限。现在他想知道,使用这些硬币恰好凑出金额 M 元的方案数有多少种。
📥 输入格式
- 第一行包含两个整数 N 和 M,分别表示硬币的种类数和目标金额。
- 接下来 N 行,每行包含两个整数 v[i] 和 s[i],分别表示第 i 种硬币的面额和可用数量。
📤 输出格式
输出一个整数,表示恰好凑出金额 M 元的方案数。
由于结果可能很大,请将结果对 \(10^9 + 7\) 取模。
🔢 示例 1
输入:
2 5
1 3
2 2
输出:
2
解释:
有以下两种组合方式:
- 1元 × 1 + 2元 × 2
- 1元 × 5
🔢 示例 2
输入:
5 3
1 1
1 1
1 1
1 1
1 1
输出:
10
✅ 数据范围
- \(1 \le N \le 100 \)
- \(1 \le M \le 10,000 \)
- \(1 \le v[i] \le 100 \)
- \(1 \le s[i] \le 100 \)
Comments