AcWing 80. 骰子的点数
原题链接
简单
作者:
adamXu
,
2020-10-02 22:50:31
,
所有人可见
,
阅读 238
class Solution {
public:
vector<int> numberOfDice(int n) {
//思路,dp问题,用f[n][s] 代表投n次总和为s的状态,状态转移方程为f[n][i] = f[n-1][s-k].
//其中k为最后一次投的点数,初始条件f[0][0] = 1,什么也不投时候方案书为1
vector<vector<int>> f(n + 1,vector<int>(6 * n + 1));
f[0][0] = 1;
for(int i = 1;i <= n;++i)
for(int j = 1;j <= 6 * n;++j)
for(int k = 1;k <= min(j,6);++k)
f[i][j] += f[i - 1][j - k];
vector<int> res;
for(int i = n;i <= 6 * n;++i) res.push_back(f[n][i]);
return res;
}
};