#12238. 排列答案取模
排列答案取模
✅ 排列答案取模
题目描述 给定两个整数 n 和 r,计算排列数
并输出结果对 取模后的值。
输入格式
n r
输出格式
P(n,r) mod 1000000007
样例
输入:
1000 500
输出:
<结果>
数据范围
💡 解法分析
- 直接按定义计算 P(n,r),每次乘法后取模,避免溢出。
- 因为只需 r 次乘法,时间复杂度 O(r),足以应付 的规模。
- 由于结果很大,使用
long long
存储中间值。
🔎 代码解析
✅ 核心思路 ✅ 细节
- 用
for (i = 0; i < r; i++)
逐项相乘。 - 每一步取模:
ans = (ans * ((n - i) % MOD)) % MOD;
避免大整数溢出,且保证结果在范围内。
✅ 复杂度
- 时间复杂度:O(r)
- 空间复杂度:O(1)