题目大意是找到一个sk使得sk≡0( mod m1m2)即sk%m1m2==0且k最小题目大意是找到一个s^k使得s^k\equiv0(\bmod m1^{m2})即s^k\%m1^{m2}==0且k最小题目大意是找到一个sk使得sk≡0(modm1m2)即sk%m1m2==0且k最小
给你n个s让你求所有s对应k的最小值给你n个s让你求所有s对应k的最小值给你n个s让你求所有s对应k的最小值
一.M的处理一.M的处理一.M的处理
因为我们m2和m1过大所以无法直接处理出m1m2的值因为我们m2和m1过大所以无法直接处理出m1^{m2}的值因为我们m2和m1过大所以无法直接处理出m1m2的值
考虑素因(质)数分解考虑素因(质)数分解考虑素因(质)数分解
令M=m1=p1a1∗p2a2∗p3a3⋯(p1,p2,⋯均为素(质)数,a1,a2,⋯均为整数)即该式为m1的素(质)因数分解令M=m1=p_1^{a_1}*{p_2}^{a_2}*{p_3}^{a_3}\cdots(p_1,p_2,\cdots均为素(质)数,a_1,a_2,\cdots均为整数)即该式为m1的素(质)因数分解令M=m1=p1a1 ∗p2 a2 ∗p3 a3 ⋯(p1 ,p2 ,⋯均为素(质)数,a1 ,a2 ,⋯均为整数)即该式为m1的素(质)因数分解
则M=m1m2=(p1a1∗p2a2∗p3a3⋯ )m2=p1a1m2∗p2a2m2∗p3a3m2⋯则M=m1^{m2}=(p_1^{a_1}*{p_2}^{a_2}*{p_3}^{a_3}\cdots)^{m2}=p_1^{a_1m2}*{p_2}^{a_2m2}*{p_3}^{a_3m2}\cdots则M=m1m2=(p1a1 ∗p2 a2 ∗p3 a3 ⋯)m2=p1a1 m2 ∗p2 a2 m2∗p3 a3 m2⋯
那么我们可以维护每个pi和ai可以开个struct维护那么我们可以维护每个p_i和a_i可以开个struct维护那么我们可以维护每个pi 和ai 可以开个struct维护
二.S的处理二.S的处理二.S的处理
那面对2∗109的s我们肯定不能用素(质)因数分解那面对2*10^9的s我们肯定不能用素(质)因数分解那面对2∗109的s我们肯定不能用素(质)因数分解
因为我们要让sk%m1m2==0就是说sk是m1m2的倍数所以sk必然至少有因数a1个p1,a2个p2⋯因为我们要让s^k\%m1^{m2}==0就是说s^k是m1^{m2}的倍数所以s^k必然至少有因数a_1个p_1,a_2个p_2\cdots因为我们要让sk%m1m2==0就是说sk是m1m2的倍数所以sk必然至少有因数a1 个p1 ,a2 个p2 ⋯
因此对于每个s我们将它依次除以前文得到的p1,p2,p3⋯因此对于每个s我们将它依次除以前文得到的p_1,p_2,p_3\cdots因此对于每个s我们将它依次除以前文得到的p1 ,p2 ,p3 ⋯
其中如果s没有一种M含的素因数,这种情况就不成立其中如果s没有一种M含的素因数,这种情况就不成立其中如果s没有一种M含的素因数,这种情况就不成立
否则必然可以凑出因数a1个p1,a2个p2⋯否则必然可以凑出因数a_1个p_1,a_2个p_2\cdots否则必然可以凑出因数a1 个p1 ,a2 个p2 ⋯
在成立情况下令s=n∗p1b1∗p2b2⋯(b1,b2,⋯均为整数)在成立情况下令s=n*p_1^{b_1}*p_2^{b_2}\cdots(b_1,b_2,\cdots均为整数)在成立情况下令s=n∗p1b1 ∗p2b2 ⋯(b1 ,b2 ,⋯均为整数)
三.求解三.求解三.求解
所以sk=nk∗p1kb1∗p2kb2⋯(b1,b2,⋯均为整数)所以s^k=n^k*p_1^{kb_1}*p_2^{kb_2}\cdots(b_1,b_2,\cdots均为整数)所以sk=nk∗p1kb1 ∗p2kb2 ⋯(b1 ,b2 ,⋯均为整数)
且sk是m1m2的倍数则kbi≥ai且s^k是m1^{m2}的倍数则kb_i\geq a_i且sk是m1m2的倍数则kbi ≥ai
在已知ai,bi的情况下,便可以求出k的范围在已知a_i,b_i的情况下,便可以求出k的范围在已知ai ,bi 的情况下,便可以求出k的范围
最后根据解集求出k在对于所有k取最小值可得答案最后根据解集求出k在对于所有k取最小值可得答案最后根据解集求出k在对于所有k取最小值可得答案
四.根据思路完成代码(小练习,代码在下面)四.根据思路完成代码(小练习,代码在下面)四.根据思路完成代码(小练习,代码在下面)
①
A.x%a==0A.x\%a==0A.x%a==0
B.x%a!=0B.x\%a!=0B.x%a!=0
C.x/a!=0C.x/a!=0C.x/a!=0
D.x/a==0D.x/a==0D.x/a==0
②
A.b/cnt+(b%cnt==0)A.b/cnt+(b\%cnt==0)A.b/cnt+(b%cnt==0)
B.b/cntB.b/cntB.b/cnt
C.b/cnt+(b%cnt!=0)C.b/cnt+(b\%cnt!=0)C.b/cnt+(b%cnt!=0)
D.b%cntD.b\%cntD.b%cnt
③
A.{i,0}A.\{i,0\}A.{i,0}
B.{i,m2}B.\{i,m2\}B.{i,m2}
C.{i,m1}C.\{i,m1\}C.{i,m1}
D.{m2,i}D.\{m2,i\}D.{m2,i}
④
A.1A.1A.1
B.iB.iB.i
C.m1C.m1C.m1
D.m2D.m2D.m2
⑤
A.0A.0A.0
B.−1B.-1B.−1
C.m1C.m1C.m1
D.m2D.m2D.m2
五.正解五.正解五.正解
参考答案:BCADB参考答案:BCADB参考答案:BCADB
创作不易,求点赞创作不易,求点赞创作不易,求点赞