#include using namespace std;

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;

}

宿舍分配方案统计 - C++ 代码实现

原文地址: https://www.cveoy.top/t/topic/hK7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录