ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

DTOJ #6057. 置换乘法 题解

2022-06-04 19:05:59  阅读:186  来源: 互联网

标签:方程 log pmod 题解 同余 alpha 6057 DTOJ equiv


首先把置换环转化成同余方程就不说了。

问题在于如何判断 \(10^6\) 个同余方程是否合法。

每个同余方程形如 \(x\equiv a\pmod{m}\)。

考虑逆 CRT,对于模数 \(m\),唯一分解成如下:

\[m=\prod_{i=1}^k p_i^{\alpha_i} \]

然后方程可以拆分为:

\[\left\{\begin{matrix} x \equiv a \pmod{p_1^{\alpha_1}}\\ x \equiv a \pmod{p_2^{\alpha_2}}\\ \vdots\\ x \equiv a \pmod{p_k^{\alpha_k}} \end{matrix}\right. \]

显然,这 \(k\) 组同余方程经过 CRT 合并后就会得到 \(x \equiv a\pmod{m}\)。

这时候,任意两个同余方程之间模数互质,一定可以合并,问题在于拆了若干个 \(m\) 后,同一个素数幂模数可能会有不同的 \(a\),此时显然同余方程无解。

还有另一种可能:对于同一个素数,不同幂次也可能有相互排斥的 \(a\)。比如 \(x\equiv 1\pmod{2}\) 且 \(x\equiv 2\pmod{4}\)。

考虑拆解同余方程的时候,不止拆成 \(k\) 个,而是对于每个素数的每个幂都拆一个,即拆 \(\sum_{i=1}^k \alpha_i\) 个。

会发现拆分出来的同余方程总量是可以接受的,读者自证不难

\(m\) 拆分出来的同余方程个数显然等于可重的质因数数量,\(\mathcal O(\log W)\) 级别的。

总同余方程数 \(\mathcal O(n\log n)\),上界很松,常数很小,数据很水,实测多加一个 map 的 \(\log\) 也能轻松通过。

标签:方程,log,pmod,题解,同余,alpha,6057,DTOJ,equiv
来源: https://www.cnblogs.com/lingfunny/p/16342421.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有