摘要:
定义 二分图,又称二部图,英文名叫 Bipartite graph。 二分图是什么?节点由两个集合组成,且两个集合内部没有边的图。 换言之,存在一种方案,将节点划分成满足以上性质的两个集合。 性质 如果两个集合中的点分别染成黑色和白色,可以发现二分图中的每一条边都一定是连接一个黑色点和一个白色点。 阅读全文
摘要:
最大公因数 直接使用__gcd(x,y) 手写 \(\gcd\) inline int gcd(int a,int b) { if(b==0)return a; return gcd(b,a%b); } 数论分块 一般是求 \[\sum_{i=1}^{i\le n}\left\lfloor\dfra 阅读全文
摘要:
概率论 基本概念 概率空间 我们将三元组 \((\Omega,\mathcal{F},P)\) 称为一个概率空间,其中,\(\Omega\) 指样本空间(指明随机现象所有可能出现的结果) ,\(\mathcal{F}\) 指事件域(我们所关心的所有事件),\(P\) 概率函数(描述每一个事件发生的可 阅读全文
摘要:
大部分是在wiki搬运的,只是方便我看 简介 pb_ds 库封装了很多数据结构,比如哈希(Hash)表,平衡二叉树,字典树(Trie 树),堆(优先队列)等。 就像 vector、set、map 一样,其组件均符合 STL 的相关接口规范。部分(如优先队列)包含 STL 内对应组件的所有功能,但比 阅读全文
摘要:
重链剖分 用途 路径上维护 子树维护 求最近公共祖先(LCA) 重剖的性质: 树上每个节点都属于且仅属于一条重链。 在剖分时 重边优先遍历,最后树的 DFS 序上,重链内的 DFS 序是连续的。按 DFN 排序后的序列即为剖分后的链。 定义 重儿子:对于每一个非叶子节点,它的儿子中以那个儿子为根的子 阅读全文
摘要:
\(2333^2=5442889,23333^2=544428889\)。归纳可以得到 \({2\underbrace{3\cdots3}_{t\ 个\ 3}}^2=5\underbrace{4\cdots4}_{t-1\ 个\ 4}2\underbrace{8\cdots8}_{t-1\ 个\ 8 阅读全文
摘要:
\[ \Huge\begin{cases} gcd(a,b)=gcd(a-b,b) ,(b<a) \\ gcd(a,b)=gcd(b-a,a) ,(a<b) \end{cases} \]只要证了其中一个,另一个同理,这里只证 \(gcd(a,b)=gcd(b-a,b) ,(a<b)\) 设 \(\g 阅读全文
摘要:
求最长公共前后缀(前置知识) for(int i=2,k=0;i<=m;i++) { while(k&&t[k+1]!=t[i])k=nxt[k]; if(t[k+1]==t[i])k++; nxt[i]=k; } 这种比较有性质的东西,推一推就懂了(感觉比较简单)。就是利用之间处理好的border 阅读全文
摘要:
维护历史值 当要修改一个节点时,把跟他有关的线段树中所有节点舍弃,并建立新节点连接. 代码如下: #include <bits/stdc++.h> using namespace std; const int N=1e6+5; int n,m,a[N],root[N],top; struct nod 阅读全文
摘要:
前置知识 线段树的基本思路 初中八年级基础知识 大体思路 李超线段树利用线段树思想, 可以支持维护支持区间插入线段,与单点查询最值。 在线段树中,每个节点存放线段的下标,同时,存的这一条线段在该区间内大部分处于比其他线段更高的位置 具体思路 变量 int n,cnt; /* cnt:目前线段数 */ 阅读全文