[知识点] 总目录

0 前言

  今天看到个超棒的网站:OI Wiki(https://oi-wiki.org/,里面知识点的分类我觉得很合理,于是决定搬运一下这个目录,同时匹配上我已经写过的内容,并补充需要补充的内容。

  绝大多数内容是自己整理的,肯定有许多疏漏甚至错误的地方,欢迎指出。

  虽然名为 OI,但同样适用于 ICPC,语言基础部分还适用于 C 与 C++ 初学。

更新日志

  20200530 - 现在子目录标题直接链接到对应文章,并标记所有需要更新的文章。 

  20200901 - 第一章语言基础结构大幅优化。

  20211022 - 优化缩进与格式,新添注释(参见目录最末)。

  

语言基础

  1.1  C 语言基础  20200422 / 20211016[4]

  1.2  C 语言进阶  20200907 / 20211031[4]

  1.3  C++ 与面向对象程序设计  20200901

  1.4  C++ 语言基础

    1.4.1  流输入输出  20200902

    1.4.2  字符数组与 string  20200716 / 20211022[2]

    1.4.3  指针与引用  20200519 / 20211028[3]

    1.4.4  命名空间  20200519 / 20211023[3]

    1.4.5  bitset

  1.5  C++ 进阶

    1.5.1  类与对象  20200421 / 20200920[2]

    1.5.2  继承与多态  20200924

    1.5.3  运算符重载  20201004

    1.5.4  模板与 STL  20200925

    1.5.5  异常处理

    1.5.6  流与文件

  1.6  C++ 11 特性

  1.7  C 与 C++ 的区别

算法基础

  2.1  枚举与模拟  20200423

  2.2  递归与分治  20200428 / 20200531(*1)

  2.3  贪心思想  20200430

  2.4  排序十讲  20200507(*1)

  2.5  二分思想  20200511

  2.6  倍增思想  20200512(*2)

  2.7  前缀和与差分  20200513(*2)

搜索

  3.1  DFS / BFS 搜索  20200514

  3.2  四种改进搜索算法  20200517

    A*搜索(启发式搜索) 20150404(旧版,现已废除)

  3.3  搜索优化 20200616

动态规划

  4.1  记忆化搜索与动态规划  20200320 / 20200616

  4.2  背包 DP  20200321(*3)

  4.3  区间 DP / LIS / LCS  20200417

  4.4  树形 / DAG / 数位 DP  20200420

  4.5  状态压缩 DP / 动态 DP

    https://www.cnblogs.com/jinkun113/p/4683325.html 20150715(待更新)

  4.6  动态规划优化 

   https://www.cnblogs.com/jinkun113/p/4758912.html 20150825(待更新)

5  字符串

  5.1  匹配算法

  5.2  字符串 Hash 20200530

    字符串Hash 20151024(旧版,现已废除)

  5.3  KMP / 扩展 KMP 算法

    https://www.cnblogs.com/jinkun113/p/4682834.html 20150524(待更新)

  5.4  Trie 树 / AC 自动机 

    https://www.cnblogs.com/jinkun113/p/4682853.html 20150527(待更新)

  5.5  后缀数组 SA / 后缀自动机 SAM / 后缀树 

    https://www.cnblogs.com/jinkun113/p/4743694.html 20150819(待更新)

  5.6  其他(Manacher / 回文树 / 序列自动机 / 最小表示法 / Lyndon 分解)

数学

  6.1  位运算与进位制 20200717(*1)

    C++ 中的运算符 20150806(旧版,现已废除)

  6.2  快速幂 20200717

  6.3  高精度计算 20200722

  6.4  数论

    6.4.1  素数与最大公约数 20200728

    6.4.2  欧几里得算法与扩欧算法  20200319 / 20200728更新

    6.4.3  费马小定理  20200318 / 20200728更新

    6.4.4  中国剩余定理

    6.4.5  BSGS

    6.4.6  莫比乌斯反演

    6.4.7  其他(原根,鲁卡斯定理,杜教筛,Min_25筛,类欧几里得算法)

  6.5  多项式

    略

  6.6  线性代数 

    https://www.cnblogs.com/jinkun113/p/4830769.html 20150922(待更新)

  6.7  线性规划

  6.8  组合数学

    6.8.1  排列组合

    6.8.2  卡特兰数

    6.8.3  斯特林数

    6.8.4  Cantor 展开 

      https://www.cnblogs.com/jinkun113/p/4677226.html 20150314(待更新)

    6.8.5  容斥原理

    6.8.6  抽屉原理

  6.9  概率 / 期望

  6.10  置换群

  6.11  斐波那契数列

  6.12  博弈论

  6.13  牛顿迭代法

  6.14  数值积分 

    https://www.cnblogs.com/jinkun113/p/4731407.html 20150814(待更新)

  6.15  分段打表(?

7  数据结构

  7.1  栈,队列和链表 20200529(*1)

  7.2  哈希表 20200530 / 20200804

  7.3  树与二叉树 20200602(*1)

  7.4  堆与优先队列 20200824

  7.5  Huffman 哈夫曼树 20200427

  7.6  并查集

  7.7  块状数据结构

    7.7.1  分块思想

    7.7.2  树分块

    7.7.3  块状链表

    7.7.4  块状数组

    7.7.5  Sqrt Tree

  7.8  单调栈 / 单调队列

    LC 每日一题中的 2104 是单调栈:https://www.cnblogs.com/jinkun113/p/15945270.html

  7.9  ST 表

  7.10  树状数组 

    https://www.cnblogs.com/jinkun113/p/4725420.html 20150812(待更新)

  7.11  线段树 

    https://www.cnblogs.com/jinkun113/p/4677409.html 20150330(待更新)

  8.4  树上问题

    8.4.1  最近公共祖先 LCA 

      https://www.cnblogs.com/jinkun113/p/4928374.html 20151101(待更新)

    8.4.2  树的重心

    8.4.3  树链剖分 

      https://www.cnblogs.com/jinkun113/p/4683299.html 20150711(待更新)

    8.4.4  其他树问题(树上启发式合并,虚树,树分治,动态树分治,树哈希)

  7.12  区间最值操作 / 区间历史最值

  7.13  划分树

  7.14  二叉搜索树 / 平衡树

    7.14.1  Treap

    7.14.2  Splay 

      https://www.cnblogs.com/jinkun113/p/4683362.html 20150718(待更新)

    7.14.3  其他树(WBLT / Size Balanced Tree / AVL 树 / 替罪羊树 / 笛卡尔树 / 左偏红黑树)

  7.15  可持久化数据结构

    7.15.1  主席树(可持久化线段树) 

      https://www.cnblogs.com/jinkun113/p/4682787.html 20150512(待更新)

    7.15.2  其他可持久化结构(块状数组,平衡树,Trie,可并堆)

  7.16  树套树

    7.16.1  线段树套线段树

    7.16.2  平衡树套线段树

    7.16.3  线段树套平衡树

    7.16.4  树状数组套主席树

  7.17  动态树

    7.17.1  Link Cut Tree (LCT)

    7.17.2  Euler Tour Tree

    7.17.3  Top Tree

  7.18  其他树(K-D Tree,珂朵莉树,析合树)

图论

  8.1  图的简介与相关概念 20200603

  8.2  图的存储与遍历 20200604

  8.3  最小生成树 20200605(*3)

  8.4  拓扑排序与关键路径 20200607

    拓扑排序 20150224(旧版,现已废除)

  8.5  最短路 20200605(*3)

    SPFA算法 20150409(旧版,现已废除)

  8.6  连通性问题

    8.6.1  强连通分量 / Tarjan算法 

      https://www.cnblogs.com/jinkun113/p/4681265.html 20150414(待更新)

    8.6.2  割点和桥

  8.7  拆点

  8.8  矩阵数定理

  8.9  差分约束

  8.10  k短路

  8.11  2-SAT

  8.12  欧拉图

  8.13  哈密顿图

  8.14  二分图

  8.15  最小环

  8.16  平面图

  8.17  图的着色

  8.18  网络流

    8.18.1  最大流 / 最小割 

      https://www.cnblogs.com/jinkun113/p/9427825.html 20180805(待更新)

      https://www.cnblogs.com/jinkun113/p/9495308.html

    8.18.2  费用流

    8.18.3  上下界网络流

  8.19  其他(Prufer 序列,LGV 引理,弦图)

9  计算几何

  9.1  二维计算几何基础 

    https://www.cnblogs.com/jinkun113/p/4680328.html 20150409(待更新)

  9.2  三维计算几何基础

  9.3  Pick 定理

  9.4  三角剖分

  9.5  凸包

  9.6  扫描线

  9.7  旋转卡壳

  9.8  半平面交

  9.9  平面最近点对

  9.10  其他(随机增量法,反演变换,杂项)

10  杂项

  10.1  读入输出优化

  10.2  离散化

  10.3  离线算法

    10.3.1  CSQ 分治

    10.3.2  整体二分

    10.3.3  莫队算法

  10.4  随机化

    10.4.1  随机函数

    10.4.2  爬山算法

    10.4.3  模拟退火

  10.5  悬线法

  10.6  计算理论基础

  10.7  字节顺序

  10.8  约瑟夫问题

  10.9  RMQ

  10.10  其他(Stren-Brocot 树,Farey 序列,格雷码,表达式求值,在一台机器上规划任务)

 

注释

  > 子标题后的日期表示文章的创建时间与最后更新时间及修订版次,比如:

    1.1  C 语言基础  20200422 / 20211016[4]

    表示 2020 年 4 月 22 日创建,2021 年 10 月 16 日完成第四版次的更新。

  > 星号标识 (*n) 表示文章内待更新的内容个数,比如:

    2.2  递归与分治  20200428 / 20200531(*1)

    表示有一处需要更新的内容。

  > 部分文章以网址形式给出,并标注(待更新),表示文章内容相当久远,不代表作者本人当下的水平与观点,仅供参考,比如:

    4.5  状态压缩 DP / 动态 DP

      https://www.cnblogs.com/jinkun113/p/4683325.html 20150715(待更新)

  > 部分文章以灰名给出,并标注(旧版,现已废除),表示文章内容相当久远,但已经有新文章予以替换,仅供考古,比如:

    5.2  字符串 Hash 20200530

      字符串Hash 20151024(旧版,现已废除)

posted @ 2020-03-19 23:59  jinkun113  阅读(834)  评论(1编辑  收藏  举报