C++21 个知识点
高级数据结构
4 个知识点树链剖分、动态树、可持久化数据结构
困难困难困难困难
树链剖分:把大树切成链,轻松找路径
树链剖分是一种将树形结构分解成若干条链,从而用线段树等数据结构高效处理路径查询和修改问题的方法。
动态树(Link-Cut Tree):会变形的树
动态树(Link-Cut Tree)是一种可以快速连接、切断和查询路径信息的树形数据结构,特别擅长处理动态变化的森林。
可持久化线段树(主席树):时光倒流的区间查询
可持久化线段树(主席树)可以保留每次修改的历史版本,让我们能随时查询过去某个时刻的区间信息,常用于求区间第K大等问题。
可持久化Trie:能返回过去的字典树
可持久化Trie(前缀树)可以记录每次插入操作的历史版本,用于查询之前任意时刻的字符串或二进制数信息,如最大异或值等。
字符串算法
3 个知识点AC自动机、后缀数组、后缀自动机SAM
图论算法
4 个知识点网络流、费用流、虚树、点分治
动态规划
2 个知识点动态DP、插头DP、轮廓线DP
计算几何
3 个知识点凸包、旋转卡壳、半平面交
数学进阶
5 个知识点FFT、莫比乌斯反演、斯特林数、线性基