摘要:
求组合数有以下四种情形 : 由公式 \(C_n^m=C_{n-1}^{n-1}+C_{n-1}^n\) 递推. 时间复杂度 \(O(nm)\). 一般 \(N\le 2000\). 预处理出阶乘, 再由 \(C_n^m=\frac{m!}{b!(a-b)!}\) 直接计算. 时间复杂度 \(O(Nl 阅读全文
摘要:
\(gcd(a,b)=gcd(b,a\%b)\) int gcd(int a, int b) return b ? gcd(b, a % b), a; 证明 : \(设r=a\%b,则a=kb+r.\) \(设d是(a,b)的公约数,则d\mid a, d\mid b,因为r=a-kb,所以d\mi 阅读全文
摘要:
最大公约数 思路 : \(gcd(x,y)=p,1\le x,y \le n \Rightarrow gcd(\frac{x}{p},\frac{y}{p})=1 \Rightarrow gcd(x′,y′)=1,1 \le x′,y′\le \frac{n}{p}\) 所以其实很经典的在矩形(n* 阅读全文
摘要:
可见的点 思路 : 可以把题意转化为 \(1\le x,y\le N\), 求 \((x,y)\) 互质对. 然后拿图像就很好理解. 如果 \(x,y\) 不互质, 那么在这个射线从原点出发, 一定会遇见 \((\frac{x}{p},\frac{y}{p})\) . 就不会在过 \((x,y)\) 阅读全文
摘要:
\(\phi(n)=n(1-\frac{1}{p_1})(1-\frac{1}{p_2})(1-\frac{1}{p_3})...\) \(\phi(n):1到n-1中与n互质的数的个数.\) 这个公式是由容斥原理得到的. 求法 : 1. 直接求. int phi(int x) { int res 阅读全文
摘要:
Hankson的趣味题 本题提供了一个求约数的取巧思路 : 如果直接暴力求约数, $N^{1/2}$的复杂度是死的. 但是我们可以先筛质数, 然后得到下列式中所有的最小质因子 p 和 次数 l. \(N = p_1^{l1}p_2^{l2}p_3^{l3}...\) 然后通过 dfs 暴力出它的约数 阅读全文
摘要:
反素数 思路 : 不同的质因子最多包含9个, 即 2, 3, 5, 7, 11, 13, 17,19, 23. 并不是说这9个质因子可以组成 int 范围内所有的数, 而是如果想要有更多的约数, 优先选小的质因子才会有更多的组合, 所以答案必然由这最小的9个质因子组成. 每个质因子的次数不大于30, 阅读全文
摘要:
约数 1. \(N=p_1^{l_1}+p_2^{l2}+p_3^{l3}+...\) 用$f[N]$表示N的约数个数:\(f[N]=(l1+1)(l2+1)(l3+1)...\) 2. $\sum_^{f(i)}$的复杂度? 可以反过来看一个数是那些数的约数: \(N/1+N/2+N/3+...+ 阅读全文
摘要:
阶乘分解 思路 : 先得到$10^6$内的素数. 对每个素数p, 枚举n含p的几次方. \(n/p+n/p^2+n/p^3+...\) $n/p$表示1n中有多少个数能被$n$整除, $n/p^2$表示1n中有多少个数能被$p^2$整除,如此累加,得到的就是$n!$总共含p因子的个数. #inclu 阅读全文
摘要:
质数距离 本题提供了一种解决大数(1e8以上)区间中质数的方法. 对于$x\in[L,R]$, \(x是合数\Longleftrightarrow 存在p\le50000且p\mid x,p<x\) 思路 : 先求出1~500000中质因子. 对于1~500000中的每个质因子p, 将[L,R]中所 阅读全文