摘要:
目录 1.单链表 2.双向链表 3.带头结点的链表 4.顺序栈 5.单链队列 6.循环队列 7.广义表头尾链表存储 8.广义表的扩展线性链表存储 9.二叉树二叉链表存储表示 10.树的双亲表示法 11.树的孩子链表存储表示(孩子表示法) 12.树的孩子兄弟表示法(二叉树表示法) 13.二叉树的二叉线 阅读全文
摘要:
将给定的一系列数字插入初始为空的AVL树,请你输出最后生成的AVL树的根结点的值。 输入格式: 输入的第一行给出一个正整数N(≤20),随后一行给出N个不同的整数,其间以空格分隔。 输出格式: 在一行中输出顺序插入上述整数到一棵初始为空的AVL树后,该树的根结点的值。 输入样例1: 5 88 70 阅读全文
摘要:
普通生成函数(OGF) 形式 \[ F = \sum_{n \geq 0} \ f_n \ x^n \]基本运算 1.相加 \[ F \pm G = \sum_{n \geq 0} \ (f_n \pm g_n) \ x^n \]2.卷积 \[ F \cdot G = \sum_{n \geq 0} 阅读全文
摘要:
在系数均为整数的时候,可以用NTT代替FFT,这样不会出现精度问题。 代码 #include <bits/stdc++.h> using namespace std; typedef long long lld; const int N = 20000005; const lld g = 3, mo 阅读全文
摘要:
前置知识1 1.多项式:一个以\(x\)为变量的多项式定义在一个代数域\(F\)上,将函数\(A(x)\)表示为形式和: \[ A(x) \ =\ \sum _{i = 0} ^ {n - 1} a_i x^i \]2.多项式的系数表示法;即由多项式的系数组成的向量 \(a\) $ = (a_0, 阅读全文
摘要:
Z函数(扩展KMP) 用于解决以下问题:给定一个长度为n的字符串\(s\),求出一个数组\(z\),其中\(z_i\)表示字符串\(s(0, n - 1)\)和\(s(i, n - 1)\)的最长公共前缀。其中 \(|s| <= 2 \times 10^7\)。 假设当前已经求出了\(z_0\)到\ 阅读全文
摘要:
简介 莫队算法是由莫涛提出的算法。 在莫涛提出莫队算法之前,莫队算法已经在 Codeforces 的高手圈里小范围流传,但是莫涛是第一个对莫队算法进行详细归纳总结的人。 莫涛提出莫队算法时,只分析了普通莫队算法,但是经过 OIer 和 ACMer 的集体智慧改造,莫队有了多种扩展版本。 莫队算法可以 阅读全文
摘要:
网络流的一些定义和性质 1.流网络(Flow Network) 流网络为一个有向图\(G = (V, E)\),所有边\((u, v) \in E\) 都有一个容量(Capacity),用\(c(u, v)\)表示。另外规定了两个点:源点(Source)、汇点(Sink),分别为\(s\)和\(t 阅读全文
摘要:
### Kruskal 重构树 #### 1.概念 在进行Kruskal算法求解最小生成树时,添加若干虚点,使求得的树成为二叉树,二叉树的叶子节点为原图中存在的节点,且每个虚点都有一个权值,为左子树中的点到右子树中的点的简单路径的最大边权。 #### 2.实现方法 仍然按照Kruskal算法按照边权 阅读全文