摘要:
逆元(自学内容) define:若ax≡1 mod f, 则称a关于1模f的乘法逆元为x。也可表示为ax≡1(mod f)。 当a与f互素时,a关于模f的乘法逆元有解。 如果不互素,通过公式‘a/b mod p = (a mod (b·p))/b’来转化 计算逆元方式:(条件a,p互质) 费马小定理 阅读全文
摘要:
数学 欧拉函数 : \(\phi(p)\) = 所有小于p且与p互质的数的个数 狭义积性: \(φ(ab)=\phi(a)\phi(b) (a,b互质时)\) 积性的证明: 令n = \(\prod p_i^{c_i}\) 则\(\phi(n)\) = n * $\prod \frac{p_i-1} 阅读全文
摘要:
数论 模运算 a%b = a - [a/b] * b; (b > 0) “=”表示同余 a = b, a = c => b = c; a = b => a+c = b+c; a = b && c = d => a + c = b + d; 最大公因数gcd return !b ? a : gcd(b 阅读全文
摘要:
Floyd判圈算法 (又称龟兔赛跑算法) 作用: 1.判断链表是否有环 2.计算环的长度 3.寻找环的起点 判环: 【快慢指针】定义两个指针,慢指针(slow)每次前进一步,快指针(fast)每次前进两步,这里只要fast比slow前进的快即可,但前进步长太多会增加代码运行时间,所以采用两倍于slo 阅读全文
摘要:
欧拉路径 模板题 一个感性的定义:一笔画路径,经过一次所有的边,点可以多次走 特别的,若该路径的起点与终点相同,则称其为 欧拉回路 欧拉路径的存在条件: 此图连通; 对于无向图,当且仅当度数为奇的点的个数为 0 或 2; 对于有向图,当且仅当 入度与出度不同的点的个数为 0 或 2; 当入度与出度不 阅读全文
摘要:
2-SAT问题 2-SAT 问题, 简单来说,就是给出一个由 n 个布尔值组成的序列 A,再给出 m 个限制关系,每个条件的形式都是 Xi 为真/假 或 Xj 为真/假(比如:A[x] AND A[y]=0、A[x] OR A[y] OR A[z]=1 等),来确定 A[0..n-1] 的值,使得其 阅读全文
摘要:
网络流(可看算法进阶) 感性的define : 一张DAG,有一个源点s,一个汇点t,其它每条边有一个容量c 从点u到点v的流量:不能让经过的点的流量超出该点的容量 增广路:还能继续流流量的路,也就是有一条路径,路径上的容量都不小于0 最大流:s到t的最大流量 求最大流算法的核心思路:不停地找增广路 阅读全文
摘要:
强连通分量,缩点算法:Tarjan 代码及模板 强连通图:有向图,任意两点有路径 强连通分量:有向图,强连通子图数量 前置知识:dfs树(dfs序构成的树) 成分: 1.树边:dfs树上的边 (以下三种边是dfs树上没有但原图上有的边) 2.前向边:dfs树的祖先到儿子的边。 3.返祖边(后向边): 阅读全文
摘要:
MinMax算法和Alpha-Beta剪枝 Minmax:一种用于博弈论 的 暴力dfs搜索算法。 思想: 假设先手为 alpha(A),后手为 beta(B)。现在,每一个dfs的搜索状态有一个权值 \(w\)(可以是估价值),A想获得最大的\(w\)(即初始状态w最大),B想要A获得最小的\(w 阅读全文
摘要:
李超线段树 代码 作用: 加入一个一次函数,定义域为 [l,r]; 给定 k,求定义域包含 k 的所有一次函数中,在 x=k 处取值最大的那个,如果有多个函数取值相同,选编号最小的。 李超线段树使用条件:任意两函数之间最多只能有一个交点。大部分情况下李超线段树维护的是直线。 李超线段树的每一个节点维 阅读全文