m0_66876619 2023-03-18 08:34 采纳率: 43.3%
浏览 71
已结题

关于#c++#的问题:每个盒子最多放K个球请计算将这N个球全部放入盒子中的方案数模1000007后的结果

有N个相同的球,M个不同的盒子,每个盒子最多放K个球
请计算将这N个球全部放入盒子中的方案数模1000007后的结果

时间限制:10000
内存限制:131072
输入
三个正整数,依次为N,M,K

输出
输出方案数模1000007后的结果

样例输入
4 2 3
样例输出
3
提示
总共有3种方案,依次为 { 3 , 1 },{ 2 , 2 },{ 1 , 3 }。 对于100%的数据, N,M ≤ 5000

  • 写回答

6条回答 默认 最新

  • CodeBytes 2023-03-18 09:47
    关注

    该回答引用ChatGPT

    如有疑问,可以回复我!

    请测试

    #include <iostream>
    #include <vector>
    
    const int MOD = 1000007;
    
    int fast_pow(int base, int exp, int mod) {
        int result = 1;
        while (exp > 0) {
            if (exp % 2 == 1) {
                result = (1LL * result * base) % mod;
            }
            base = (1LL * base * base) % mod;
            exp /= 2;
        }
        return result;
    }
    
    int main() {
        int N, M, K;
        std::cin >> N >> M >> K;
    
        std::vector<int> factorial(10005, 1);
        for (int i = 1; i <= 10000; ++i) {
            factorial[i] = (1LL * factorial[i - 1] * i) % MOD;
        }
    
        if (K == 1) {
            std::cout << fast_pow(M, N, MOD) << std::endl;
            return 0;
        }
    
        int ans = 0;
        for (int i = 0; i * K <= N && i <= M; ++i) {
            int temp = (1LL * factorial[N - i] * fast_pow(factorial[K - 1], M, MOD)) % MOD;
            temp = (1LL * temp * fast_pow(factorial[K * i], MOD - 2, MOD)) % MOD;
            temp = (1LL * temp * fast_pow(factorial[M], MOD - 2, MOD)) % MOD;
            temp = (1LL * temp * fast_pow(factorial[M - i], MOD - 2, MOD)) % MOD;
            ans = (ans + temp) % MOD;
        }
    
        std::cout << ans << std::endl;
    
        return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 3月26日
  • 已采纳回答 3月18日
  • 赞助了问题酬金15元 3月18日
  • 创建了问题 3月18日

悬赏问题

  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源