用C++解决“分配小球2”问题,附代码实现
```cpp #include <iostream> using namespace std; const int MOD = 1e9 + 7; // 快速幂函数,用于计算 a^b % MOD long long fastPow(long long a, long long b) { long long res = 1; while (b > 0) { if (b & 1) { res = (res * a) % MOD; } a = (a * a) % MOD; b >>= 1; } return res; } // 计算组合数 C(n, k) % MOD long long combination(int n, int k) { long long numerator = 1, denominator = 1; for (int i = 1; i <= k; ++i) { numerator = (numerator * (n - i + 1)) % MOD; denominator = (denominator * i) % MOD; } // 使用费马小定理求分母的逆元 return (numerator * fastPow(denominator, MOD - 2)) % MOD; } int main() { int n, m; cin >> n >> m; long long ans = 1; int total = n * m; for (int i = 0; i < m; ++i) { ans = (ans * combination(total, n)) % MOD; total -= n; } // 消除堆之间的重复排列 ans = (ans * fastPow(fastPow(m, m), MOD - 2)) % MOD; cout << ans << endl; return 0; } ``` 这段代码实现了分配小球2的问题。首先定义了取模的常量`MOD`,`fastPow`函数用于快速计算幂取模,`combination`函数用于计算组合数取模。在`main`函数中,读取输入的`n`和`m`,通过循环计算组合数并累乘到结果`ans`中,最后消除堆之间的重复排列,输出最终结果。 ######[AI问答 | 501点数解答 | 2026-05-31 15:29:24]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)401
- C3期末:精准求解 3 - 20 范围内数列第 k 项值及注意要点(字节豆包 | 242点数解答 | 2025-06-15 11:26:19)171
- C++求解:查找3 - 20项数列第k项值及注意要点(字节豆包 | 325点数解答 | 2025-06-15 11:27:11)195
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)368
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)518
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)399
- 破解Jenkins构建Java项目“数据收集等待过长”难题的实用攻略( | 389点数解答 | 2024-01-18 09:27:30)347
- Jenkins 构建 Java 项目“数据收集等待过长”难题的 10 大解决策略(百度文心 | 551点数解答 | 2024-01-18 09:27:54)304
- C++ 求解整数减少至 0 使奇数次数最少的最小纠结次数问题(字节豆包 | 229点数解答 | 2024-08-21 16:33:58)278
- C++ 实现按复杂规则计算业务员工资,附完整代码!(字节豆包 | 337点数解答 | 2024-11-18 17:48:36)305
- C++ 实现:求解二进制字符串中消除连续 m 个 0 的最少操作次数(GPT | 876点数解答 | 2024-11-30 23:07:54)229
- 奇幻游戏积分排序:奇数升序偶数降序,Python代码轻松搞定!(DeepSeek | 233点数解答 | 2025-04-12 17:08:17)228