AcWing 80. 骰子的点数
原题链接
简单
作者:
adamXu
,
2020-10-10 12:41:58
,
所有人可见
,
阅读 516
class Solution {
public:
vector<int> numberOfDice(int n) {
//dp做法,dp[n][m]表示第n次点数为m的方案个数,边界是dp[0][0] = 1,而其他情况均为0
//状态转移方程为dp[i][j] += dp[i - 1][j - k](k 范围1-6)
vector<vector<int>> dp(n + 1,vector<int>(6 * n + 1));
dp[0][0] = 1;
for(int i = 1;i <= n;++i)
for(int j = i;j <= 6 * i;++j)
for(int k = 1;k <= min(6,j);++k)
dp[i][j] += dp[i - 1][j - k];
vector<int> res;
for(int i = n;i <= 6 * n;++i) res.push_back(dp[n][i]);
return res;
}
};