algorithm-problem-leetcode-2585
2585. 获得分数的方法数(1910)
考试中有 n 种类型的题目。给你一个整数 target 和一个下标从 0 开始的二维整数数组 types ,其中 types[i] = [counti, marksi] 表示第 i 种类型的题目有 counti 道,每道题目对应 marksi 分。
返回你在考试中恰好得到 target 分的方法数。由于答案可能很大,结果需要对 10^9 +7 取余。
注意,同类型题目无法区分。
比如说,如果有 3 道同类型题目,那么解答第 1 和第 2 道题目与解答第 1 和第 3 道题目或者第 2 和第 3 道题目是相同的。
示例 1:
12345678910输入:target = 6, types = [[6,1],[3,2],[2,3]]输出:7解释:要获得 6 分,你可以选择以下七种方法之一:- 解决 6 道第 0 种类型的题目:1 + 1 + 1 + 1 + 1 + 1 = 6- 解决 4 道第 0 种类型的题目和 1 道第 1 种类型的题目:1 + 1 + 1 + 1 + 2 = 6- 解决 2 道第 0 种类型的题目和 2 道第 1 种类型的 ...
algorithm-problem-leetcode-1155
1155. 掷骰子等于目标和的方法数(1654)
这里有 n 个一样的骰子,每个骰子上都有 k 个面,分别标号为 1 到 k 。
给定三个整数 n、k 和 target,请返回投掷骰子的所有可能得到的结果(共有 k^n 种方式),使得骰子面朝上的数字总和等于 target。
由于答案可能很大,你需要对 10^9 + 7 取模。
示例 1:
1234输入:n = 1, k = 6, target = 3输出:1解释:你掷了一个有 6 个面的骰子。得到总和为 3 的结果的方式只有一种。
示例 2:
1234输入:n = 2, k = 6, target = 7输出:6解释:你掷了两个骰子,每个骰子有 6 个面。有 6 种方式得到总和为 7 的结果: 1+6, 2+5, 3+4, 4+3, 5+2, 6+1。
示例 3:
123输入:n = 30, k = 30, target = 500输出:222616187解释:返回的结果必须对 109 + 7 取模。
提示:
1 <= n, k <= 30
1 <= target <= 1000
思路:多重背包(背包恰好装 ...