东西多,而且比较高妙,和数学的关系较大。
没写完,才写了一点,先去冲csp了,冲完再更
基础
质数, 分解质因数,整除,互质,gcd/lcm
放一起是因为都很基本
trick: 利用质因子间的独立性, 分解问题
例1
求 \(1...n\) 所有数的 lcm,\(n\le 10^8\),1s
先筛出来质数。考虑这些数的lcm,就是每种质数取最高次
最高能取多少次?对于每个 \(p\),取最大的 \(k\) 使得 \(p^k\le n\),那它就是 \(k\) 次。
枚举每个 \(p\),计算 \(k\),乘起来。
复杂度: \(O(\dfrac{n}{\ln n}\times \log n)=O(n)\)
例2 SDOI2008沙拉公主的困惑
这里用到一个东西: 互质的规律性
对于一个 \(p\),设 \(f(i)\) 表示 \(i\) 是否与 \(p\) 互质 (1互质,0不互质),那么 \(f(i)=f(i+p),\forall i\in \N^{*}\)
那对于这个题,计算出 \(\varphi(m!)\times \dfrac{n!}{m!}\) 即可。
\(\varphi(m!)\) 就把 \(m\) 分解质因数计算即可。讨论一下 \(m>mod\) 的情况。
例3 CF1295D
\(\gcd(a,m)=\gcd(a+x,m),x\in [0,m)\)
首先把 \(a,m\) 约掉一个 \(\gcd\)。然后就变成:
计算多少 \(x\in[0,m)\) 满足 \(gcd(a+x,m)=1\),也就是 \(a+x\) 和 \(m\) 互质
根据互质的规律性,我们发现这玩意可以平移,然后就等价于有多少个 \(x\) 和 \(m\) 互质。这玩意就是 \(\varphi(m)\)。
考虑到我们约掉了一个 \(\gcd\),也就是说,答案是
\(\varphi(\dfrac{m}{\gcd(a,m)})\)
例4 CF615D
求 \(n\) 所有因数的积。\(n\) 用分解质因数的形式给出,质数的个数 \(\le 2\times 10^5\),每个质数都在 \(2\times 10^5\) 以内。
有一个东西:\(n\) 的因数,相当于是 \(n\) 分解质因数后每个 \(p^k\),选择一个指数 \(c(c\le k)\),然后把 \(p^c\) 乘起来。这个方法可以得到 \(n\) 的所有因数。
因此,我们用这个生成法,考虑每个质数 \(p\) 的贡献,设它是 \(k\) 次。那它显然可以取 \(1,2,3...k\) 次,都可以。这些乘起来就是 \(p^{\frac{k(k+1)}{2}}\)。
然后它被算了多少次呢?显然,其它的质因数可以随便取,每取一次就会把它算一次。那把其它质因数的指数 \(+1\) 乘起来,就是它被算的次数。
然后把每个贡献乘起来就行了。