提交时间:2026-05-22 14:57:11

运行 ID: 89040

#include <iostream> #include <vector> using namespace std; int main() { int m, n; cin >> m >> n; // dp[i][j] 表示将j拆成i个非降序正整数的方案数 vector<vector<int>> dp(m + 1, vector<int>(n + 1, 0)); dp[0][0] = 1; for (int i = 1; i <= m; i++) { for (int j = i; j <= n; j++) { for (int k = 1; k <= j / i; k++) { dp[i][j] += dp[i - 1][j - k]; } } } cout << dp[m][n] << endl; return 0; }