link
知识点回顾
基础
- 快读
1 | ios::sync_with_stdio(false); |
- 语法相关
- 时空复杂度, TLE
- 时间 <
- 典型
-
-
-
-
-
- 典型
- 空间 个 int 左右 128MB MLE
- 时间 <
- 数据类型
- int 2^32-1 2e9 %d
- long long, 2^64-1 1e19 %lld
- unsigned 无符号,可将负数部分用于存储更多的正数
- double 2e9 %lf
- long double 1e19 %Lf
- char
- gets 整行
- cin scanf(“%s”, s+1)
- 数据类型读取方式
- printf(“%.2lf”)
- while(cin>>a) while(scanf(“%d”, &a)!=EOF)
- 字符串函数 (注:字符串操作时间复杂度是的,故不要放在循环条件上)
- 时空复杂度, TLE
1 | int len = strlen(s) |
1 | * strlen |
- STL函数库
- set
- map
- unordered_map
简单算法
- 模拟和枚举——暴力的基础
- 按照题目给出或最简单朴素的流程进行操作
- 考察基本的代码功底、阅读题目细节、特殊情况举例排查的能力
- 练习题
- 搜索
-
枚举的一种,包含所有的情况
-
深度优先搜索dfs(求方案数,也可枚举所有路径求最短方案数)
- P2907 [USACO08OPEN] Roads Around The Farm S
- P2386 放苹果(有限次拆分,允许存在0,枚举拆分次数)
- P1028 [NOIP 2001 普及组] 数的计算
- P1515 旅行
- P1464 Function
- P1025 [NOIP 2001 提高组] 数的划分(有限次拆分,不允许存在0,枚举拆分次数)
- P1605 迷宫
- P1036 [NOIP 2002 普及组] 选数
- P1464 Function
-
- P2404 自然数的拆分问题(无限次拆分,枚举数)
- P1451 求细胞数量
- P1135 奇怪的电梯
- P1238 走迷宫
- 知识点
- 节点状态
-
广度优先搜索bfs(走地图,求最短路径)
-
搜索强化
-
- 排序
- 贪心
- 简单数学
- 质数判断
- 最大公约数
- 二分查找、二分答案
- P2249 【深基13.例1】查找——二分精确查找模板
- P2440 木材加工
- P2678 [NOIP 2015 提高组] 跳石头
- P1824 进击的奶牛
- P1182 数列分段 Section II
- P4343 [SHOI2015] 自动刷题机
- 题面特征:
- 最大的最小值,最小的最大值
- 求什么,二分什么
- 快速幂与倍增思想
- 分治
- 高精度
- 双指针
数据结构
-
前缀和、差分
-
链表、栈、队列
-
优先队列——堆
-
哈希
-
树状数组
-
线段树
-
单调队列
-
分块
-
st表
图论
- 图的遍历
- 欧拉回路
- 最短路
- 并查集
- 最小生成树
- 拓扑排序
- 强连通分量
- 网络流
- 最大流
- 最小割
- 最大流=最小割
- 费用流
动态规划
- 线性dp
- 背包dp
- 区间dp
- 树上dp
- 状态压缩dp
- 单调队列优化dp
- 数据结构优化dp
- 数位dp
- 斜率优化dp
- 轮廓线dp
树论
- 树的性质
- 重心
- 直径
- 最近公共祖先LCA
- 树上差分
- 树链剖分
- 点分治
字符串
- KMP
- 最长公共前缀
- P3375 【模板】KMP
- manacher
- 回文串个数和最大长度
- P3805 【模板】manacher
- Trie树
- AC自动机
- 回文自动机
数学
- 组合数学
- 排列组合
- 概率与期望
- 容斥定理
- 数论
- link
- 线性筛和埃尔筛
- 同余与逆元
- 欧拉函数
- 中国剩余定理
- 高次剩余定理
- 求 l 时间复杂度
- P3846 [TJOI2007] 可爱的质数/【模板】BSGS
- 数论分块与莫比乌斯反演
- 筛法
1 | void init(){ |
1 | * 杜教塞 |
- 线性代数
- 矩阵快速幂
- 线性基
- 多项式
计算几何
- 计算几何基础
- 叉积
- 三角形面积
- 凸包
- 旋转卡壳
- 半面相交