数论
文章平均质量分 61
纪录平时学习算法的总结
Eter`nal
蒟蒻菜鸟的进阶之路。
展开
-
BSGS 大步小步算法
BSGS 大步小步算法,也叫拔山盖世算法,实质也是就利用分块+预处理的方式,来高效的解决 Ax≡B(modC)A^x\equiv B (modC)Ax≡B(modC) 求最小的x 的问题。求中 C 为质数,对 C 不是质数的情况要用到 EXBSGS 即扩展大步小步算法。(待更)对于 C 为质数的情况 则 A,C 互质。 根据扩展欧几里得的定理 Ax≡Axmod ϕ(C) (mod C)A^x\equiv A^{x\mod \phi(C)} \ (mod\ C)Ax≡A原创 2021-07-31 10:03:31 · 151 阅读 · 0 评论 -
博弈论之SG函数
博弈论之 SG 函数公平组合游戏ICG需满足的条件:(1)有两名玩家交替行动(2)游戏进行的任意时刻,可以执行的合法操作与轮到哪名玩家无关。(3)不能行动的玩家判负。有向图游戏:给定一个有向无环图,图中有唯一的起点,在起点上放有一枚棋子。两名玩家交替地把这枚棋子沿着有向边进行移动,每次可以移动一次,无法移动者判负。这样的游戏被称为有向图游戏。任何一个公平组合游戏都可以转化成有向图游戏。具体方法是:把每个局面看成图中的一个节点,把从它能到达的所有局面通过有向边连接起来。Mex 运算:原创 2021-07-19 00:46:37 · 550 阅读 · 1 评论 -
线性筛总结
线性筛总结:线性筛又称欧拉筛,它是在埃式筛法的基础上进一步优化,因为埃式筛中多个合数可能被重复筛去,而在欧拉筛中,通过break,确保每个合数只被它的最小质因子筛去,进而避免重复筛去,降低时间复杂度。for(int i=2;i<=n;i++){ if(!vis[i])pri[cnt++]=i; for(int j=0;i*pre[j]<=n&&j<cnt;j++) { vis[i*pri[j]]=1; if(i%pri[j]原创 2021-05-26 11:07:13 · 655 阅读 · 0 评论 -
数论分块总结
1.数论分块总结:数论分块类似于倍增的思想,可以在某些问题种,将o(n)的时间复杂优化。(1)首先先来看最简单的分块:即求∑i=1n⌊ni⌋\sum_{i=1}^n{\lfloor \frac{n}{i} \rfloor}i=1∑n⌊in⌋如果没有学数论分块的话,肯定就是暴力枚举了。通过观察我们可以发现:对于 [n/i] 下取整,某一段连续的值是一样的,显然对于这一段我们可以不用一个一个的算,如果确定了那段的左右边界以及值的话,我们可以通过 (r-l+1) *val 直接算出这一段的和原创 2021-05-26 11:04:34 · 498 阅读 · 0 评论