摘要: 图的顶点集可以划分为两个互不相交的子集,使得图中的每条边的两个顶点分属不同集合。 等价于: 图中所有的环都必须有偶数个顶点,即不存在奇数长度的环。 1 dfs染色 color = [-1] * n def dfs(x, c): color[x] = c for y in g[x]: if color 阅读全文
posted @ 2025-08-22 19:47 shmily-ymh 阅读(17) 评论(0) 推荐(0)
摘要: 1. 网络流 有向图 G=(V,E),其与一般有向图的不同之处在于有容量(即边权)和源点、汇点。 1.1 Ford–Fulkerson G上一条从源点 s 到汇点 t 的路径称为增广路(Augmenting Path)。对于一条增广路,我们给每一条边(u, v) 都加上等量的流量,以令整个网络的流量 阅读全文
posted @ 2025-08-20 03:45 shmily-ymh 阅读(18) 评论(0) 推荐(0)
摘要: 1. 强连通分量 强连通的定义是:有向图G中任意两个结点连通。强连通分量(Strongly Connected Components,SCC)是极大的强连通子图。 2. tarjan Tarjan 算法基于对图进行\(DFS\)。我们视每个连通分量为搜索树中的一棵子树,在搜索过程中,维护一个栈,每次 阅读全文
posted @ 2025-08-15 19:36 shmily-ymh 阅读(11) 评论(0) 推荐(0)
摘要: 1 欧拉图 欧拉路径(Eulerian path)是经过图中每条边恰好一次的路径, 欧拉回路(Eulerian circuit)是经过图中每条边恰好一次的回路。 如果一个图中存在欧拉回路,则这个图被称为欧拉图(Eulerian graph); 如果一个图中不存在欧拉回路但是存在欧拉路径,则这个图被称 阅读全文
posted @ 2025-08-15 15:24 shmily-ymh 阅读(146) 评论(0) 推荐(0)
摘要: 1 Kruskal算法 最小生成树: 树中的每个点都与其他节点连通,树中的边权和最小,因此\(n\)个节点的最小生成树有\(n-1\)条边。 思想: 其基本思想是按照边的权值大小进行排序,然后按照顺序选择边构建最小生成树,同时确保不会形成环路。由于堆所有边权进行排序,因此该算法适用于稀疏图(边的数量 阅读全文
posted @ 2025-08-14 16:13 shmily-ymh 阅读(16) 评论(0) 推荐(0)
摘要: 1 \(BFS\) 广度优先搜索:每次都尝试访问同一层的节点。 如果同一层都访问完了,再访问下一层。这样做的结果是,BFS 算法找到的路径是从起点开始的最短合法路径。换言之,这条路径所包含的边数最小。因此对于边权都为\(1\)的图,\(BFS\)可以用来计算最短路。 1.1 \(BFS\)应用 在一 阅读全文
posted @ 2025-08-05 01:26 shmily-ymh 阅读(25) 评论(0) 推荐(0)
摘要: OI-wiki 拓扑排序 Kahn(卡恩)算法 \(g[x]\)存点\(x\)的邻点,\(tp\)存拓扑序列,\(d[x]\)存点\(x\)的入度。算法的核心用队列维护一个入度为0的节点的集合。 初始化,队列\(q\)压入所有入度为\(0\)的点; 每次从\(q\)中取出一个点\(×\)放入数组\( 阅读全文
posted @ 2025-08-01 17:04 shmily-ymh 阅读(42) 评论(0) 推荐(0)
摘要: 思想 Hash 的核心思想在于,将输入映射到一个值域较小、可以方便比较的范围。 性质 具体来说,哈希函数最重要的性质可以概括为下面两条: 在 Hash 函数值不一样的时候,两个字符串一定不一样; 在 Hash 函数值一样的时候,两个字符串不一定一样(但有大概率一样,且我们当然希望它们总是一样的)。 阅读全文
posted @ 2025-07-10 18:02 shmily-ymh 阅读(37) 评论(0) 推荐(0)
摘要: 1.质数定义 我们这样定义质数:如果自然数$ p > 1 $的因数只有1和它本身,那么 $p $是质数。不是质数,就是合数。 质数有很多美妙的性质,比如: 如果一个数是质数,那么它是自然数。 如果一个数是质数,那么它不是合数。 如果一个数是质数,那么它大于等于2。 2.判断\(n\)是否为质数的方法 阅读全文
posted @ 2024-09-05 17:57 shmily-ymh 阅读(361) 评论(0) 推荐(0)
摘要: 1. 异或: 本质:在每个比特位上进行模\(2\)加法。相同为0,不同为1。 \[0 \oplus n = n \]\[n \oplus n = 0 \]2. 异或定理 \[4i \oplus (4i + 1) \oplus (4i + 2) \oplus (4i + 3) = 0 \]证明: 由于 阅读全文
posted @ 2024-09-05 17:27 shmily-ymh 阅读(310) 评论(0) 推荐(0)