宿舍分配方案统计 - C++ 代码实现
#include
int main() { int n; cin >> n;
// 定义一个数组dp,dp[i]表示分配i个同学的宿舍方案数量
int dp[n+1];
// 初始化dp数组
dp[0] = 1; // 分配0个同学的方案只有一种,即不分配
dp[1] = 1; // 分配1个同学的方案只有一种,即一个人一个宿舍
// 动态规划计算dp数组的值
for (int i = 2; i <= n; i++) {
dp[i] = 0;
// 遍历所有可能的分配方案
for (int j = 1; j <= i; j++) {
dp[i] += dp[i-j];
}
}
cout << dp[n] << endl;
return 0;
}
原文地址: https://www.cveoy.top/t/topic/hK7 著作权归作者所有。请勿转载和采集!