补全:顺着乘出阶乘表
补全 prepare() 里阶乘那一行:fact[i] = fact[i-1]·i,每一步取模。补全后输出 C(1000000, 500000)。 本节模型:fact、inv_fact 两个全局数组开到 10^6,prepare() 顺着乘
补全:倒着推阶乘逆元
补全 prepare() 里倒推那一行:inv_fact[i-1] = inv_fact[i]·i。补全后输出 C(10, 3)。 本节模型:fact、inv_fact 两个全局数组开到 10^6,prepare() 顺着乘出阶乘、倒着推出
补全:线性递推逆元
补全 prepare_inv() 的递推,算出 1..10^6 的全部逆元。补全后输出它们的和模 10^9+7。 (本题用 g++ -std=c++17 -O0 编译。)
补全:组合数查询
补全 C(n, k):fact[n]·inv_fact[k]·inv_fact[n-k],每乘一次取一次模。补全后输出 C(10^6, k) 对 k=0..10^6 求和模 10^9+7。 本节模型:fact、inv_fact 两个全局数组
补全:连乘要分步取模
补全 C(n, k):三个都接近 10^9 的数不能直接连乘,每乘一次就要取模。补全后输出 C(10^6, 3×10^5)。 本节模型:fact、inv_fact 两个全局数组开到 10^6,prepare() 顺着乘出阶乘、倒着推出阶乘逆
CRT 解决什么问题
第 1 步:在 0~9 里找 x 第 2 步:先圈出除以 3 余 2 的 第 3 步:其余的排除 第 4 步:再挑除以 5 余 3 的:唯一 第 5 步:每 15 个数里恰好一个 0 1 2 3 4 5 6 7 8 9 中国剩余定理解决的是
标准 CRT 的前提
标准 CRT 要求各模数【0】。 本节模型:crt(rs, ms) 模数两两互质时,把每个方程的贡献 rs[i]·Mi·(Mi 的逆元) 加起来。
CRT 解落在哪
模数乘积为 M,CRT 的解在【0】内唯一。 本节模型:crt(rs, ms) 模数两两互质时,把每个方程的贡献 rs[i]·Mi·(Mi 的逆元) 加起来。
解一组同余方程
运行下面这段程序: 本节模型:crt(rs, ms) 模数两两互质时,把每个方程的贡献 rs[i]·Mi·(Mi 的逆元) 加起来。 #include <array> #include <iostream> #inc
补全:模数乘积
补全 crt:M 是所有模数的乘积。补全后解 x≡2 (mod 3)、x≡3 (mod 5)。 本节模型:crt(rs, ms) 模数两两互质时,把每个方程的贡献 rs[i]·Mi·(Mi 的逆元) 加起来。 (本题用 g++ -std=c