220726总结
220726总结
-
我学会了什么
- 利用预处理的前缀积与逆元在 \(O(\log M)\) 的时间内求 \(C_n^m \bmod M\) ( \(M\) 为质数)
- 怎么求卡特兰数
-
还搞不懂什么
- 容斥原理
本日题解
已知 \(a_n=2^{a_{n-1}}\) ,求 \(a_n \bmod p\)。
根据欧拉定理推论可知,由于 \(n\) 趋近于无穷大,所以 \(a_{n-1}\) 也趋近于无穷大,所以满足 \(a_{n-1}\geq\varphi(p)\)
因此 \(2^{2^{2^\cdots}}\equiv 2^{2^{2^\cdots} \bmod \varphi(p)+\varphi(p)} \pmod p\)
根据这个式子我们可以不断地降幂,直到 \(p\) 的值变为 \(1\)
用一个较大的数初始化 \(N\) 后递归求解即可。
数论全家桶(
求 \(G^{\sum_{i\mid n}\binom ni }\bmod 999911659\)
\(n\leq10^9,999911659=2\times3\times4679\times35617+1\)是质数
为了方便打公式,设 \(a=G,b=\sum_{i\mid n}\binom ni,p=999911659\)
因为模数为质数,所以可以用欧拉定理 \(a^b \equiv a^{b\bmod\varphi(p)} \pmod p\)。
还是因为 \(p\) 是质数,所以 \(\varphi(p)=p-1\)
那么 \(b \bmod \varphi(p)=\sum_{i\mid n}\binom ni\bmod (2\times3\times4679\times35617)\)
根据同余式的性质(如果同余式对于模 \(p\) 成立,那么它对于 \(p\) 的任意约数相等的模 \(d\) 也成立)可得,
\(\left\{\begin{matrix} x \equiv \sum_{d\mid n}\binom{n}{d} \pmod {2} \\ x \equiv \sum_{d\mid n}\binom{n}{d} \pmod {3} \\ x \equiv \sum_{d\mid n}\binom{n}{d} \pmod {4679} \\ x \equiv \sum_{d\mid n}\binom{n}{d} \pmod {35617} \end{matrix}\right.\)
根据 \(\text{Lucas}\) 定理,\(\displaystyle\binom {n}{k} \equiv \binom {\frac{n}{p}}{\frac{k}p{}} \binom {n \bmod p}{k \bmod p} \pmod p\),可以加快求组合数的速度并随时取模
根据中国剩余定理,可解出最小非负整数解 \(x\) ,最后快速幂求 \(G^x\) 即可。
首先,在 \(m\) 个元素中选 \(n-1\) 个作为序列元素(因为有且仅有一对相同元素),共 \(C_m^{n-1}\) 种方案。
最大的元素是确定的。如果两个相同的元素也确定了,那么剩下的 \(n-3\) 个元素就可以选择放在最大值左侧或右侧,共 \(2^{n-3}\) 种方案。
相同的元素的选取有 \(n-2\) 种方案(\(n-1\) 个元素,去掉一个最大值)。
所以最终答案为 \(C_m^{n-1}\times(n-2)\times2^{n-3}\) 种方案,注意特判 \(n=2\) 无解。
这个问题可以转化为将 \(1\sim2n\) 放入序列中,每次只能放在最前的奇数位或偶数位。
由于偶数位上的数一定大于等于其下标,所以在任意时刻偶数位上的数一定少于等于奇数位上的数。
又因为奇数位于偶数位总个数相同。
所以可以用卡特兰数求解。
由于 \(p\) 不是质数,可以将\(2n,n\) 质因数分解后求解。