NOI 级
C++程序设计
C++程序设计
STL
模板:容器(containers
)、迭代器(iterators
)、空间配置器(allocators
)、配接器(adapters
)、算法(algorithms
)、仿函数(functors
)- 面向对象的程序设计思想(
OOP
)
数据结构
数据结构
-
线性结构
- 分块
- 块状链表
-
序列
- 后缀数组
- 跳跃表
- 无根树的
Prufer
序列
-
复杂树
- 树链剖分
- 主席树
- 二维线段树
- 后缀树
- 树套树
k-d
树- 最小树形图
- 动态树(
LCT
)
-
可合并堆
- 左偏树
- 二项堆
-
可持久化数据结构
算法
算法
-
算法策略
- 复杂分治思想
- 平衡规划思想
- 构造思想
-
字符串算法
- 求最长回文串的
Manacher
算法 - 多模匹配算法——
AC
自动机 - 求字符串前缀和后缀算法——扩展
KMP
- 确定性有穷自动机——
DFA
算法 - 非确定性有穷自动机——
NFA
算法 - 后缀自动机
- 求最长回文串的
-
图论算法
- 网络流算法
- 图的支配集、独立集与覆盖集
- 二分图的最大匹配——匈牙利算法
- 二分图的最佳匹配算法——
KM
算法 - 一般图的匹配
-
动态规划
- 复杂动态规划模型构建
- 复杂动态规划模型的优化
数学
数学
-
信息论基础
- 熵、互信息、条件熵、相对熵的基本概念
- 信息复杂度的基本概念
- 描述复杂度的基本概念
- 通讯复杂度的基本概念
-
初等数论
- 原根和指数
- 大步小步(`Baby Step Giant Step, BSGS)算法
- 完全数
- 狄利克雷(
Dirichlet
)卷积 - 平方剩余
- 二次同余式
- 二次互反律
-
离散数学
- 代数系统的基本概念
- 群的基本概念
- 置换群与循环群
-
组合数学
- 母函数
- 莫比乌斯变换
Burnside
引理与Polya
原理- 斯特林数
-
高等数学
- 多项式函数微分
- 多项式函数积分
- 泰勒级数
- 快速傅里叶变换(
Fast Fourier Transform, FFT
) - 卷积
-
线性代数
- 矩阵的逆运算
- 行列式及其运算
- 线性相关与矩阵的逆
-
概率论
- 概率相关概念
- 求概率的乘法公式、全概率公式、贝叶斯公式
-
博弈论
- 零和博弈问题——
Nim
博弈等 Sprague-Garundy(SG)
函数概念及应用
- 零和博弈问题——
-
运筹学
- 线性规划之单纯形法
-
计算几何
- 矢量及其运算
- 点、线、面之间的位置判断
- 常见图形的面积计算
- 二维凸包的求法及其应用
- 半平面交
最后更新: 2021-09-16