信息学竞赛知识点整理
这个东西没用~~
数据结构:
基础数据结构:链表、树、图的存储和遍历 栈和队列的应用 差分数组 二叉堆 并查集(按秩合并、带权并查集、拆点) 单调队列 单调栈 哈希表 映射 集合 优先队列
中级数据结构:RMQ(ST算法、RMQ标准算法、约束RMQ) 树状数组 线段树 伸展树 Treap 替罪羊树 二维RMQ 二维哈希表 二维树状数组 二维线段树 无旋Treap 划分树 归并树 可并堆 莫队算法 块状链表 跳表
高级数据结构:主席树 树套树 K-D树 树分块 Rope Bitset 可持久化数据结构 启发式合并 线段树合并(动态开点) Euler Tour Tree 四分树 分段哈希表
数学:
实数二分法求方程的解 分解质因数 快速幂取模 欧几里德算法 素数判定 筛法 裴蜀定理 更相减损术 Lucas定理 扩展欧几里德算法 中国剩余定理 扩展中国剩余定理 费马小定理 欧拉定理 扩展欧拉定理 欧拉函数 卡特兰数 乘法逆元 容斥原理(补集转化) 调和级数 模线性方程 BSGS 拓展BSGS 整数拆分 母函数 置换群 Burnside引理 Polya定理 数学期望 博弈论(NIM问题,SG函数,树上删边游戏) 拉格朗日乘子法 单纯形法解线性规划 FFT 三分法 二分法 01分数规划 矩阵快速幂求斐波那契数列 广义斐波那契数列求循环节长度 随机素数测试和大数分解 A^B的约数之和对MOD取模 莫比乌斯反演定理 自适应辛普生积分 排列组合 矩阵运算 高斯消元 概率期望 二项式定理 阶和原根 Ramsey定理
图论:
Kruskal算法 Prim算法 SPFA算法 树链剖分 Dijkstra算法 Bellman-Ford算法 Floyd算法(最短路、最小环) 拓扑排序 欧拉图 差分约束 最近公共祖先 动态树(LCT) prufer编码(Cayley定理) 生成树计数(矩阵树定理) 求无向图的割点和桥 有向图强连通分量 无向图的双连通分量 二分图判定 二分图的最大匹配(匈牙利算法) 二分图的最大权匹配(KM算法) 二分图的多重匹配 稳定婚姻问题 无向图全局最小割(Stoer-Wagner算法) 最大流(EK算法、FF算法、Dinic算法、SAP算法、ISAP算法) 最小费用最大流(SPFA+EK,ZKW) 有上下界的网络流 次小生成树 最小瓶颈生成树(路)曼哈顿最小生成树 次短路 K短路 2-SAT问题 点(边)分治 树的直径 dfs序与欧拉序 平面图的对偶图 动态点分治 虚树 弦图与区间图 仙人掌图 最小树形图 最小平均值环 一般图匹配(带花树算法)
动态规划:
01背包 二维费用背包 分组背包 环形动态规划 混合背包 棋盘型动态规划 区间型动态规划 完全背包 多重背包 有依赖的背包 LIS(nlogn) 状态压缩型动态规划 划分型动态规划 树形动态规划 数位动态规划 斯坦纳树 LCS 最长公共子串 LCIS DAG上的动态规划 概率动态规划 基于连通性的动态规划(插头、轮廓线) 环套树上的动态规划 动态规划的优化(决策单调性等) 双重动态规划 记忆化搜索 多维动态规划 多重集组合数
搜索:
n皇后问题 汉诺塔问题 宽度优先搜索 深度优先搜索 枚举非空真子集 枚举多重集排列 枚举多重集组合 双向宽搜 迭代加深搜索 启发式搜索 二叉树序遍历相互求法 状态空间搜素 极大极小搜索(α-β剪枝) Dancing Links
模拟:
进制转换 插入排序 冒泡排序 十进制高精度 选择排序 桶排序 圆排列 表达式求值 万进制高精度 迭代法 模拟退火算法 爬山算法 最小圆覆盖(随机增量法) 随机化
字符串:
字典树(01字典树) KMP 拓展KMP 后缀数组(LCP,波兰表) 后缀树 AC自动机 回文自动机 后缀自动机(SAM) 马拉车算法 字符串哈希(LCP) 字符串双哈希
计算几何:
点、直线、线段、多边形、圆、矩形的基本运算 凸包 半平面交 旋转卡壳 平面最近点对 三点求圆心坐标 求两圆相交面积 pick公式 扫描线 三维计算几何 仿射变换与矩阵
贪心法:
部分背包问题 区间覆盖问题 选择不相交区间(区间选点问题) 最优装载问题 哈夫曼编码 乘船问题 过河问题(加强版) 汽车加油问题 拟阵上的最大独立集问题 排序不等式
分治法:
归并排序(逆序对) 最大连续和 棋盘覆盖问题 快速排序(第K极值) 巨人与鬼问题 整体二分 CDQ分治
其他:
输入输出外挂 手动加栈与手动编译优化 strtok和sscanf结合输入