|
32 | 32 |
|
33 | 33 | 假设 `dp[i][j]` 表示扔 i 个骰子,出现点数之和 j 的次数。n 个骰子,所以 i 的范围在 `1~n`,j 的范围在 `[1, 6n]`。
|
34 | 34 |
|
35 | | -单看第 n 枚骰子,它的点数可能为 `1,2,3,...,6`,因此扔完 n 枚骰子后点数之和 j 出现的次数,可以由扔完 n-1 枚骰子后,对应点数 j−1,j−2,j−3,...,j−6 出现的次数之和转化过来。即: |
| 35 | +单看第 n 枚骰子,它的点数可能为 `1,2,3,...,6`,因此扔完 n 枚骰子后点数之和 j 出现的次数,可以由扔完 n-1 枚骰子后,对应点数 `j−1,j−2,j−3,...,j−6` 出现的次数之和转化过来。即: |
36 | 36 |
|
37 | 37 | ```
|
38 | 38 | for (第n枚骰子的点数 i = 1; i <= 6; i ++) {
|
39 | 39 | dp[n][j] += dp[n-1][j - i]
|
40 | 40 | }
|
41 | 41 | ```
|
42 | 42 |
|
43 | | -扔 1 枚骰子,点数可能是 1,2,3,4,5,6,且每个点数出现的次数均为 1。所以初始化如下: |
| 43 | +扔 1 枚骰子,点数可能是 `1,2,3,4,5,6`,且每个点数出现的次数均为 1。所以初始化如下: |
44 | 44 |
|
45 | 45 | ```
|
46 | 46 | for (int j = 1; j <= 6; ++j) {
|
|
0 commit comments