AcWing 算法提高第五章 数学知识
Contents
筛质数
欧拉筛:让每一个合数只被它的最小质因子筛掉,这样每个合数只会被筛一次,时间复杂度 $O(n)$。对于遍历到的素数 $p$,$p|x$ 时停止遍历,对 $x=pr$ ($p>r$,其中 $p$ 是 $x$ 的最小质因数),对于 $p^\prime>p$,$p^\prime x=pp^\prime r=p(p^\prime r)$,说明 $p^\prime r$ 最小质因数不是 $p^\prime$。
题意:对偶数 $6\le n<10^6$,输出满足 $n=a+b$ 且 $b-a$ 最大的一组奇素数 $a,b$。
线性筛后,遍历找到第一个满足 $n-p$ 也是素数的 $p$ 即可。
|
|
题意:对序列 $2,3,\dots n + 1$ 染色,使得质因子颜色不同,要求颜色最少。
构造,$n\ge3$ 最少为 2,质数为 1,合数为 2。
|
|
分解质因数
题意:整数 $3\le n\le10^6$,阶乘 $n!$ 按算术基本定理分解输出 $p_i$ 和 $c_i$。
legendre 定理,$r(n!)=\lfloor n/p\rfloor + r(\lfloor n/p\rfloor!)$。
|
|
概论与数学期望
题意:求有向无环图中起点到终点总长度期望值,在每个顶点访问每条边概率为该点出度倒数。
利用期望的线性性质:$\mathbb{E}(aX+bY)=a\mathbb{E}(X)+b\mathbb{E}(Y)$,利用记忆化 dp 递推求解即可,f[i]
表示从顶点 i
到终点的期望,状态转移方程如下。
$$f[v]=\sum_{i=1}^k\frac{1}{k}(w[i]+f[v_i])$$
|
|
题意:在 54 张扑克牌里翻牌,求得到 A 张黑桃、B 张红桃、C 张梅花、D 张方块需要翻开牌的期望是多少,小王大王可以当作某种花色。
与上题类似,状态 f[a][b][c][d][x][y]
表示 a 张黑桃、b 张红桃、c 张梅花、d 张方块,大小王 x y 数值 $0\sim3$ 分别表示 a b c d 四堆中,4 表示未翻出。
$$dp[i]=\sum_{j=1}^m(1+dp[j])\times p[j]=1+\sum_{j=1}^mdp[j]\times p[j]$$
|
|