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日

悬赏问题

  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教