随笔分类 - 日常总结
竞赛学习
摘要:多项式科技 多项式全家桶 处理多项式的一些套路 高等数学 高等数学 数值算法 各种数值算法 线性代数 线性代数 数论相关技术 数论 组合数学 组合数学 组合优化 具体数学 具体数学 计数问题 计数!计数! 概率统计 概率和期望不得不说的故事 渐进估计 Master Theorem 抽象代数 浅谈抽象
阅读全文
摘要:这里可能包括但不限于树套树。 总之是一棵树上每个结点又套了点别的什么东西。 拜谢lxl 坑开在这儿了,以后填吧。 代码复杂度比较高,建议想明白了再开始敲。 可以用来动态维护二维平面上的信息。 结构是DAG,一般不支持标记下方。但是可以标记永久化。 BIT套树 最好写的。但是也难写。 BIT套平衡树可
阅读全文
摘要:咕咕咕。 学会了一点了。 KDT维护了\(k\)维空间中的超长方体。每个结点及其子树都在同一超长方体中。 KDT的实现与平衡树类似(其实在\(k=1\)时就是另类的平衡树,只不过不太优秀)。树上的每个结点都对应着\(k\)维空间中的一个点。然后随便维护一下信息就可以支持\(k\)维超长方体查询信息了
阅读全文
摘要:从BST引入。 我们要高效查找一个值,那么在保证左儿子小于右儿子的二叉树上跳,期望\(O(d)\),\(d\)为深度。 二叉搜索树BST 最好\(O(\log n)\),最坏\(O(n)\)。 左子树的权值小于根的权值小于右子树的权值。 P用没有。 替罪羊树 是一种依靠重构来维持平衡的重量平衡树。在
阅读全文
摘要:来解决树上DS问题。 因为没有能够直接高效维护树型结构的DS,于是把树剖分成链,然后拿序列上的DS去维护每一条链的信息。 树链剖分有很多种:轻重链剖分,长链剖分,虚实链剖分。 轻重链剖分 这里是轻重链剖分。常数很小。 其实不一定要用线段树维护,但用线段树维护是最常见的。 支持换根,路径修改,路径查询
阅读全文
摘要:一大波线段树和树状数组预警。 树状数组基础部分 Binary Indexed Tree.BIT 线段树可以实现树状数组所有功能,但树状数组简单易写常数小。 树状数组利用了二进制数的特性,很精巧。 注意到一件事,若将当前点下标从低到高第一个\(1\)记作\(k\),那么当前点的范围即包含当前点的前面长
阅读全文
摘要:典型的是字符串Trie,但是那是字符串里该讲的。 但是结构还是类似的。 01Trie 将一个二进制数插入到Trie中,每条边代表着\(0/1\)。 建树可以从高位到低位,也可以从低位到高位。看题目需要。 维护异或极值 从高位到低位建树。 对于一个数,考虑当前二进制位上的数字,尽量往相反的方向跳,跳了
阅读全文
摘要:线性的基本数据结构 栈 先进后出,没啥好讲的,主要是应用。 关于表达式 栈可以做表达式相关的问题。 几个名词: 逆波兰式是后缀表达式,波兰式是前缀表达式。 后缀表达式求值 可以用栈做到\(O(n)\)。 建立一个栈,储存表达式中的数字。 2.从前往后扫后缀表达式。遇到数字就入栈,遇到运算符就从栈中取
阅读全文
摘要:基础部分 最大流 Dinic 板子 #include<bits/stdc++.h> using namespace std; using i64=long long; constexpr int maxn=210,maxm=5e3+10,inf=0x7fffffff; int n,m,S,T; in
阅读全文