[模板]Treap平衡树详解
摘要:题目:普通平衡树 zig zag图示 #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N = 100010,INF=0x3f3f3f3f; struct Node{
阅读全文
[模板]主席树
摘要:第K小数 #include <iostream> #include <cstring> #include <algorithm> #include <vector> using namespace std; const int N = 100010; struct Node{ int l,r; in
阅读全文
[模板]可持久化Trie
摘要:可持久化Trie模板 最大亦或和 题解 #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int M=6e5+10; int n,m; int h[25*M][2]; int
阅读全文
车站分级(拓扑排序+空间建图优化)
摘要:题目:车站分级 题意转化:对于一班车,从起点到终点的所有站中,把非经停站向所有经停站连一条长度是1的边,表示前者的等级要严格小于后者的等级 问题:爆空间 解决方法:考虑到这种一群点向另一群点两两连边,可以优化为一群点先向一个虚拟点连一条长度为0边,再从这个虚拟点向另一边连一条长度是1的边,可以把空间
阅读全文
单词游戏(欧拉路径)
摘要:单词游戏 关键思路是不把每个字符串看成一个点,而是把每个字符串的起始点和终止点的字符看作一共点,把每一字符串的起点和终点连一条边,然后跑欧拉路径 #include<bits/stdc++.h> #define LL long long #define x first #define y second
阅读全文
欧拉回路(模板及优化)
摘要:欧拉回路模板 模板题:欧拉回路(含有向图和无向图) 未优化版:复杂度又可能会超过O(m),原因是把当前边删掉后,只有子节点会受影响,而它的父节点会继续遍历被删去的边,例如在1个点,很多自环的例子中会被卡 #include<bits/stdc++.h> #define LL long long #de
阅读全文
二分图总结
摘要:二分图 1.二分图<->不存在奇数环<->染色法不存在矛盾 2.匈牙利算法,匹配,最大匹配,匹配点,增广路径 最大匹配<->不存在增广路径 从左边的非匹配点,沿着一条非匹配边,走到一个匹配点,再沿着一条匹配边,走到一条匹配点,最后...到一个对面的非匹配点 3.最小点覆盖,最大独立集,最小路径点覆盖
阅读全文
用LCA解次小生成树问题
摘要:次小生成树 用lca求出每个非树边的路径中的边的最小值和次小值(因为要求的是严格次小生成树),这里有求次小的经典模板。 #include <iostream> #include <cstring> #include <algorithm> #define LL long long using nam
阅读全文