blog.muyun.space Open in urlscan Pro
66.33.60.35  Public Scan

Submitted URL: http://blog.muyun.space/
Effective URL: https://blog.muyun.space/
Submission: On December 21 via api from US — Scanned from US

Form analysis 0 forms found in the DOM

Text Content

😇
山暮云秋
山暮云秋 | Blog千里关山边草暮,一星烽火朔云秋
知识分享与生活记录
63
7
84

--------------------------------------------------------------------------------



--------------------------------------------------------------------------------



01Trie AVL树 BFS C++ Cmake C语言 DFS DP Dijkstra Fleury Floyd Git Hexo博客 Hierholzer
KaTex
山
暮
云
秋
的
空
间


我到底要以怎么样的速度生活才能与你再次相遇?「秒速五厘米」
木有BUG!站点正常运行(ノ゚▽゚)ノ | 最近更新:倍增LCA与Tarjan | 更新时间:2024-11-28
数据来源 @ShanMuYunQiu
Less
 * 
 * 
 * 
 * 
 * 

More
过去一年提交1672023-12-17 - 2024-12-21
最近一月提交22024-11-22 - 2024-12-21
最近一周提交02024-12-15 - 2024-12-21


倍增LCA与TARJAN

发表于 2024-08-17- 更新于 2024-08-19
5.7k- 24m
山暮云秋
学习倍增 LCA 与 Tarjan,用 Tarjan 求 LCA、强联通分量、割点割边、找环

--------------------------------------------------------------------------------


倍增 LCA

--------------------------------------------------------------------------------

 * 倍增 LCA
   
   > 1、LCA:输入树的节点个数 nnn,这棵树以节点 111 为根,接下来 n−1n-1n−1 行,分别输入节点 2→n2 \to n2→n
   > 的父节点,再输入询问次数 qqq,每个询问给出两个整数 u,vu, vu,v,输出 u,vu, vu,v 的最近公共祖先
   > lca(u,v)lca(u,v)lca(u,v)
   > 2、最近公共祖先 LCA:深度最大的公共祖先,即几个节点的父节点链从下向上最早相交的点 (可以是这两个点中的一个)。性质:u→vu \to vu→v
   > 的简单路径可以分为两条链,即 u→lca(u,v)u \to lca(u,v)u→lca(u,v) 和 lca(u,v)→vlca(u,v) \to
   > vlca(u,v)→v;类似于 max,min,gcdmax, min, gcdmax,min,gcd 等运算,其满足
   > lca(x,y,z)=lca(x,lca(y,z))lca(x,y,z) =
   > lca(x,lca(y,z))lca(x,y,z)=lca(x,lca(y,z));多个点的
   > lca(x1,x2,…,xk)lca(x_1,x_2,…,x_k)lca(x1 ,x2 ,…,xk ) 等价于 DFS 序最小点 和 DFS
   > 序最大点的 lcalcalca
   > 3、倍增 LCA:类似于ST 表,我们令 fa[x][j]fa[x][j]fa[x][j] 表示节点 xxx 向上走 2j2^j2j
   > 所到达的点,例如对于节点 xxx,其向上第一个父节点为 fa[x][0]fa[x][0]fa[x][0],第二个为
   > fa[x][1]fa[x][1]fa[x][1],第四个为 fa[x][2]fa[x][2]fa[x][2],第八个为
   > fa[x][3]fa[x][3]fa[x][3];此外,从根开始以节点深度从上到下标记层次,用 dep[x]dep[x]dep[x] 记录 xxx
   > 的深度。这样的结构可以实现快速跳跃,要从 xxx 向上跳跃到目标层次,可以贪心地先迈大步再迈小步:从大到小枚举 jjj,再检查
   > fa[x][j]fa[x][j]fa[x][j] 是否超过目标层次,超过则不操作,不超过则 xxx 跳跃到当前
   > fa[x][j]fa[x][j]fa[x][j],继续向下枚举。例如,如果要从第 888 层跳跃到第 222 层,二者相隔 666 个节点:为方便,从
   > j=3j = 3j=3 开始枚举,此时 fa[x][j]fa[x][j]fa[x][j] 是向上 888 个节点的位置,超出目标范围不操作;继续枚举
   > j=2j = 2j=2,此时 fa[x][j]fa[x][j]fa[x][j] 为向上 444 个节点的位置,令 xxx 跳到该位置,此时还差 222
   > 个节点到目标;继续枚举 j=1j = 1j=1,xxx 跳到当前 fa[x][j]fa[x][j]fa[x][j] 到达目标节点。可以发现,起始相隔的
   > 666 个节点二进制为 1102110_21102 ,111 的位置恰好指示了对应位置 jjj 需要跳跃
   > 4、实现上,初始化最上面虚拟的点 fa[1][0]=0fa[1][0] = 0fa[1][0]=0 (无意义),操作上需要求
   > fa[][]fa[][]fa[][] 数组,再求 lcalcalca。对于求数组,可以通过 DFS 得到,转移方程为
   > fa[x][j]=fa[fa[x][j−1]][j−1]fa[x][j] =
   > fa[fa[x][j-1]][j-1]fa[x][j]=fa[fa[x][j−1]][j−1],例如求
   > fa[x][2]=fa[fa[x][1]][1]fa[x][2] = fa[fa[x][1]][1]fa[x][2]=fa[fa[x][1]][1]
   > (求 xxx 向上走 222^222 步,等同于从 xxx 向上走 212^121 步再走 212^121 步),在 DFS 过程中,上面的点的
   > fa[][]fa[][]fa[][] (即转移方程右侧)是已知的;此外,对于 dep[]dep[]dep[] 有
   > dep[x]=dep[fa[x][0]]+1dep[x] = dep[fa[x][0]] + 1dep[x]=dep[fa[x][0]]+1
   > (深度为父节点 +1+1+1)。对于求 lcalcalca,给定两点 x,yx, yx,y,首先将深度大的(假设是
   > xxx)向上跳至二者在同一深度(用上面的方法跳跃),判断 x,yx, yx,y 是否相等(因为可能 yyy 就是 xxx 的祖先),相等就输出
   > yyy;如果不相等,那么二者一起向上跳,依然从大到小枚举 jjj,但条件为若 fa[x][j]=fa[y][j]fa[x][j] =
   > fa[y][j]fa[x][j]=fa[y][j] 则不跳 (始终保持两个点不相等),这样操作后,最终两个点会留在 lcalcalca
   > 的子节点,所以返回父节点 fa[x][0]fa[x][0]fa[x][0] 即为 lcalcalca

阅读更多
数据结构与算法
C++LCATarjan


01TRIE

发表于 2024-08-11
1.8k- 7m
山暮云秋
学习 01Trie 字典树解决异或对问题,求最大异或对、第 k 小异或对

--------------------------------------------------------------------------------


01TRIE-最大异或对

--------------------------------------------------------------------------------

 * 01Trie
   
   > 1、Trie 指字典树:简单地说,对于 abcd,abcc,abca,accaabcd, abcc, abca,
   > accaabcd,abcc,abca,acca
   > 这四个字符串,互相之间有相同前缀,将它拆分成字符,建成边权为字符、点权为到该点为止相同前缀的字符串个数的树,称为 Trie
   > 树,树的高度为字符串长度,如下图(蓝色为边权,红色为点权)。其通常处理前缀问题(如判断某个字符串作为前缀出现多少次),但实际很少用到 Trie
   > 树,常用的是 01Trie 树
   > 2、01Trie 存储的不是字符,而是二进制的 0,10, 10,1,用于表示数字,基于二叉树:例如数组内有数字
   > 5=01012,7=01112,2=00102,10=101025 = 0101_2, 7 = 0111_2, 2 = 0010_2, 10 =
   > 1010_25=01012 ,7=01112 ,2=00102 ,10=10102 ,便可以用01Trie
   > 树来存储表示这个数组,树的高度为最长二进制位数,如下图所示
   > 3、01Trie初始只有一个空节点(初始节点 000),采用动态开点的方式,其每个节点存储点权 valvalval 和两条边 0,10, 10,1
   > 分别指向的子节点 son[0],son[1]son[0], son[1]son[0],son[1]。更新时,没有的节点就动态开点,经过的节点点权
   > +1+1+1,对应二进制位为 000 就左走,为 111 就右走。对于数值范围在 10910^9109 内的(约 303030
   > 位二进制),01Trie 通常需要 32n=N<<532n = N \lt\lt 532n=N<<5 的空间

阅读更多
数据结构与算法
C++01Trie树


权值线段树和主席树

发表于 2024-08-08- 更新于 2024-08-10
3.7k- 16m
山暮云秋
学习权值线段树和主席树(可持久化权值线段树),维护数组元素的属性(元素出现次数),求在规定大小范围内的元素个数、第 k 大/小的元素、区间不同数的个数

--------------------------------------------------------------------------------


权值线段树

--------------------------------------------------------------------------------

 * 权值线段树
   
   > 1、权值线段树:输入操作次数 qqq (q≤2×105q \leq 2 \times
   > 10^5q≤2×105),起始你有一个空的多重集合(允许元素多次出现),对于每次操作:输入 1 x1\ x1 x 表示向集合添加元素 xxx,输入
   > 2 l r2\ l\ r2 l r 查询大小在 [l,r][l, r][l,r] 之间的元素个数,输入 3 k3\ k3 k 查询集合中第 kkk
   > 小的元素
   > 2、先前介绍的线段树用于维护原数组的区间信息,而权值线段树用于维护数组元素的某种属性,例如元素出现次数或其他权值(但一般就是维护元素出现次数,即维护元素出现次数这个桶),数据结构上与线段树类似
   > 3、以维护元素出现次数为例,原数组若为 {1,2,1,3,5}\{1, 2, 1, 3, 5\}{1,2,1,3,5} ,则元素出现次数的桶内为
   > {[1]:2, [2]:1, [3]:1, [4]:0, [5]:1}\{[1]:2,\ [2]:1,\ [3]:1,\ [4]:0,\
   > [5]:1\}{[1]:2, [2]:1, [3]:1, [4]:0, [5]:1}
   > 。给这个桶建立线段树即为权值线段树,每个节点的管辖区间表示管辖数字的范围,权值为管辖范围内这些数字的出现次数,如节点 {[1,4]:4}\{[1,
   > 4] : 4\}{[1,4]:4} 表示数字 1→41 \to 41→4 共出现了 444
   > 次(下图为线段树结构,请按上述描述类比理解权值线段树的结构),树的叶子结点从左至右对应这个桶本身且管辖区间(对应桶的下标,也即元素值)从左至右都是升序的
   > 4、权值线段树可以进行的操作有单点更新(不依赖
   > lazytaglazytaglazytag,插入一个元素时更新线段树权值)、数量查询(查询整个数组中元素大小在 [l,r][l, r][l,r]
   > 之间的元素个数)、数值查询(查询整个数组中第 kkk
   > 大/小的元素值),所有操作从根节点开始。单点更新,与线段树搜寻策略相同,但可以搜寻过程中直接更新权值(因为不需要维护
   > lazytaglazytaglazytag),当然也可以找到叶子后递回时pushup。数量查询,即对桶求区间和,在权值线段树上的处理和加法线段树是相同的,凑出完整的询问区间求和即可
   > 5、数值查询,查找第 kkk 小的元素值,从根节点起,看左子节点权值
   > t[l]t[l]t[l]:由于管辖区间(对应桶的下标,也即元素值)从左至右都是升序的,权值 t[l]t[l]t[l] 则表示前
   > t[l]t[l]t[l] 小的元素都在左子节点区间。如果 t[l]≥kt[l] \geq kt[l]≥k,说明第 kkk
   > 小在左子节点区间,应向左继续查找第 kkk 小;否则,则应向右查找第 k−t[l]k - t[l]k−t[l] 小的元素(因为左区间有
   > t[l]t[l]t[l] 个更小的元素,向右查询时应减去 t[i]t[i]t[i]
   > 排除掉这些元素);最后,应查找到一个叶子结点,其管辖区间即为所求元素值。类似地,查找第 kkk 大时应判断右子节点权值,如果 t[r]≥kt[r]
   > \geq kt[r]≥k 则向右查第 kkk 大,否则向左查第 k−t[r]k - t[r]k−t[r] 大

阅读更多
数据结构与算法
C++树权值线段树


线段树

发表于 2024-08-05
6.1k- 27m
山暮云秋
学习线段树,维护数组的区间信息(加法、乘法、最值、异或)

--------------------------------------------------------------------------------


加法线段树

--------------------------------------------------------------------------------

 * 线段树
   
   > 1、先前学习了运用树状数组维护区间和,而线段树是一种更高效更通用的方法,通过 lazytaglazytaglazytag 优化后可以在
   > O(log⁡n)O(\log n)O(logn)
   > 下完成区间修改和查询(朴素版只能单点修改和区间查询),还可以维护更多的区间信息(区间和、区间积、异或和、最值等满足可加性或集合合并性质的信息),运用了分治思想
   > 2、线段树是一种基于二叉树的数据结构,朴素版的每个节点包含的信息有:编号 ooo、管辖区间 [s,e][s,
   > e][s,e]、权值(即维护的区间信息)。为了实现区间修改,还会加入懒标记 lazytaglazytaglazytag

阅读更多
数据结构与算法
C++树线段树


D - K-TH NEAREST

发表于 2024-07-29- 更新于 2024-11-28
533- 2m
山暮云秋
人一能之,己百之;人十能之,己千之。

算法题
二分查找二分答案


KATEX\KATEXKATE X 公式大全

发表于 2024-03-31
转载自洛谷文章,列出了所有支持的 KaTeX\KaTeXKATE X 符号

专业技能教程
KaTex


KATEX\KATEXKATE X 速查手册

发表于 2024-03-30
KaTeX\KaTeXKATE X 可以让你在 Markdown 中使用数学公式,该文章为 KaTeX\KaTeXKATE X 的语法速查。应注意部分字符应使用
html 字符实体

专业技能教程
KaTex


欧拉路径与哈密顿路径

发表于 2024-02-26- 更新于 2024-07-30
1.2k- 5m
山暮云秋
学习欧拉路径、欧拉回路与哈密顿路径的特点,学习 Fleury 算法和 Hierholzer 算法

--------------------------------------------------------------------------------


欧拉路径与哈密顿路径

--------------------------------------------------------------------------------

 * 欧拉路
   
   > 1、欧拉路径:从某一点出发经过一条不间断的路径,这条路径刚好访问整个图的所有边一次且仅一次(一笔画问题)。一个图可能有多条欧拉路径
   > 2、欧拉回路:一条首尾相接的欧拉路径(首尾相接的一笔画问题)。一个图可能有多条欧拉回路
   > 3、欧拉图:具有欧拉回路的图。特点为:无向图中所有顶点的度都是偶数;有向图中所有顶点的入度和出度都相等
   > 4、半欧拉图:具有欧拉路径但不具有欧拉回路的图。特点为:无向图中有且仅有两个顶点的度为奇数,这两个顶点分别为起点和终点;有向图中有且仅有一个顶点的出度
   > - 入度 =1= 1=1,另有且仅有一个顶点的入度 - 出度 =1= 1=1,这两个顶点分别为起点和终点
   > 5、推论:欧拉图的所有欧拉路径都是欧拉回路,所以计算欧拉回路与欧拉路径的算法完全一样
   > 6、无向图中,在欧拉路的 2 个奇数度点之外,每多有 2 个奇数度点,画完所需要最少的笔数增加一笔

阅读更多
数据结构与算法
C++数学欧拉路径哈密顿路径FleuryHierholzer
123…8
© 2022 – 2024 山暮云秋
本博客已历经风霜坚持了 980 天 16 小时 13 分 50 秒( ̄▽ ̄)/

Powered by Hexo v6.3.0|Theme - Yun v1.10.11|Deploys by
萌ICP备 20245835号

 1.  1 夏天,再见 暮色 / 诗岸
 2.  2 流霰(星尘Infinity Version) 旅行的蜗牛 / 星尘
 3.  3 巫山云(星尘Infinity Version) 旅行的蜗牛 / 星尘
 4.  4 月巷 星葵77 / 乐正绫
 5.  5 东京不太热 Z新豪 / 洛天依Official
 6.  6 藏蓝-(绫) 残杨如血
 7.  7 碎梦(short ver.) COP / 乐正绫
 8.  8 旧时约 WOVOP / 乐正绫
 9.  9 听雨(AI) WOVOP / 洛天依
 10. 10 淋完这场雨就忘记你吧 WOVOP / 洛天依
 11. 11 啥啊 星葵77 / 洛天依Official
 12. 12 夏霞 (Acoustic ver.) あたらよ
 13. 13 DROP 美波
 14. 14 アイスクリーム 花譜
 15. 15 それを世界と言うんだね 花譜
 16. 16 it's 6pm but I miss u already. bbbluelee / Furyl / Siren
 17. 17 下一个拥抱 (past times) 艾纳德 / Diorbin
 18. 18 鲸歌(Cover 萨满乐队) 陈亮 宋依凡
 19. 19 漫步 UnicornPhantom
 20. 20 独角 UnicornPhantom
 21. 21 青空 THE ROLLING GIRLS
 22. 22 夕暮れ(カバー) THE ROLLING GIRLS
 23. 23 Polaris Asia D / JAMMERC
 24. 24 Seasons Rival / Cadmium / Harley Bird
 25. 25 Miracle Tiborg
 26. 26 Dirty Paws - 电影《白日梦想家》插曲 Of Monsters And Men
 27. 27 Stay Alive - 电影《白日梦想家》插曲 José González
 28. 28 Can We Kiss Forever? Kina / Adriana Proenza
 29. 29 小孩小孩 刷牙 / ilem
 30. 30 白鸟过河滩 洛天依 / ilem
 31. 31 Wings of Piano V.K克
 32. 32 Daylight Seredris
 33. 33 第105天 Pianoboy高至豪
 34. 34 De Ortu Solis Charun
 35. 35 Long Journey JINBAO
 36. 36 Welcome Home Radical Face
 37. 37 What U Do Wild Culture / Shel Bee
 38. 38 花と水飴、最終電車 n-buna / 初音ミク
 39. 39 ハレハレヤ-朗朗晴天 鹿小丸
 40. 40 飞 大神慧 / 十七草
 41. 41 Antisocial BEAUZ / Heather Sommer
 42. 42 Void Kirara Magic
 43. 43 Freefall 暴君de
 44. 44 Carousel DEAMN
 45. 45 17さいのうた。 『ユイカ』
 46. 46 ただ声一つ ロクデナシ
 47. 47 懒人 三无MarBlue
 48. 48 An Old Song MoreanP
 49. 49 雨道 Otokaze
 50. 50 夏恋 Otokaze
 51. 51 Cold Winter July
 52. 52 Where are you AniFace
 53. 53 青空 Candy_Wind
 54. 54 Feeling The Rain MoreanP
 55. 55 森林 灰澈
 56. 56 Umbrella Matte / Ember Island
 57. 57 说书人 暗杠 / 寅子
 58. 58 听书 暗杠 / 寅子
 59. 59 神のまにまに 初音ミク / 鏡音リン / GUMI / れるりり
 60. 60 ふわふわ時間 放課後ティータイム
 61. 61 朝焼けのスターマイン 今井麻美
 62. 62 鼓動 カグラナナ
 63. 63 In Your Eyes DG812
 64. 64 YUMEND MYUKKE.
 65. 65 RyAL-All I know Champer
 66. 66 “Fall Silent” Game Tape
 67. 67 4038 JuggShots_RADI8 / 夏璃夜 / Reggie Yang / RADI8
 68. 68 Outerspace BEAUZ
 69. 69 Bring Me Back Miles Away
 70. 70 Starry Skies The Darkmaker / GY
 71. 71 Way To You Gareth Emery
 72. 72 1984 Forwe兰斯 / WERECORDS
 73. 73 Every Day VESRIX / The Darkmaker / 赵曼伊mï
 74. 74 PLANET ラムジ
 75. 75 Hall of Fame The Script / will.i.am
 76. 76 Stuttering Fefe Dobson
 77. 77 回る空うさぎ Orangestar / 初音ミク
 78. 78 雨き声残響 Orangestar / IA
 79. 79 Surges Orangestar / IA
 80. 80 天ノ弱 鹿乃
 81. 81 天ノ弱(Piano ver.) Akie秋绘
 82. 82 アイロニ H△G
 83. 83 STAY The Kid LAROI / Justin Bieber
 84. 84 Million Days Sabai / Hoang / Claire Ridgely
 85. 85 Returns Poppin'Party
 86. 86 她追逐着月光的尽头 warma
 87. 87 帰路 - KaeriMichi - Otokaze
 88. 88 儿时的夏日 余日秋山
 89. 89 春日 四季音色
 90. 90 夏夜 四季音色
 91. 91 心动讯息 BlackDD
 92. 92 Forever (Epic Edition) PIKASONIC
 93. 93 Never Gonna Give You Up (Piano Version) LittleTranscriber
 94. 94 Revolution 高仕超

ハレハレヤ-朗朗晴天 - 鹿小丸
00:05 / 03:28

An audio error has occurred, player will skip forward in 2 seconds.


作词 : 羽生まゐご

作曲 : 羽生まゐご

和声:鹿小丸

夜の街迷いし穢れの乱歩

以不洁的乱步 迷失于夜晚的街道

何処から来たのよ見窄らしいね

你是从何而来的呢 为何衣衫褴褛

ねぇうちにおいで温めてあげるよ

呐 来我这里吧 我会给你温暖

今までよく頑張ったよね

一直以来都很努力了呢

ここらで休んでみませんか

不在这里稍作休息吗

ゆっくり話をしませんか

不好好地聊一聊吗

とりあえず今夜は安心さ

总之今晚可以放心了

足跡は雪が消していた

足迹已被白雪掩盖

声はひどく痛んだ

发出的声音痛苦不堪

乾いた乾いた

干渴难耐 干渴难耐

遠くの狐がこんこんと

远方传来清脆的狐鸣

僕たちを探しているようだ

似乎是在寻找我们

そっと息を潜めた

悄悄地隐藏住气息

このままこのまま行こう

就继续保持这样吧

凍てつく雪の中で

凝冻如石的雪地之中

確かな熱を帯びた

确实夹带着温热

呼吸をして声を焼いて

每一次呼吸 都灼烧着声音

燃えた燃えた禊の火

燃起了 燃起了 净罪之火

さぁ縁の垣根を超えて

来吧 跨过因缘的篱墙

貴方をもっと知りたい

让我更加坦诚的了解你

言えないまま言えないまま

却说不出口 欲言又止

いつの間にか雪は雨になりました

不觉间 飞雪已化为雨露

夜明け前貴方は早々と

黎明前你便匆匆动身

此処から出て行ってしまった

从这里离去

あんなに泣いていたのに

明明曾那样哭泣过

溢れた溢れた

泪如雨下 泪如雨下

今までありがとさんなんて

说什么感谢我照顾你这么久

言わないでよ置いてかないで

不必说啊 不要走啊

きっと帰れやしない

恐怕是不会再回来了

このまま このまま

就这样吧 就这样吧

いつか夢で会えても

即使有朝一日在梦里相见

貴方にゃきっと届かない

这份心意也一定无法传递给你

僕は此処で僕は此処で

我就在这里我就在这里

袖を濡らしながら帰りを待つだけ

以泪洗面 濡湿衣袖 静待你的归来

さぁ宴のたけなわ超えて

来吧 越过宴会方酣时

生きてみようか

事到如今 不试着活下去吗

禊ぎの火は禊の火は

禊之火 业之火

雨に雨に濡れていた

已被雨淋湿殆尽

晴れた晴れた朝ぼらけ

雨过天晴 烟雾消散在拂晓的晴空

見てるかな

你看见了吗

 * 专业技能教程 7
   * Cmake基础教程
   * Git基础教程
   * KaTeX\KaTeXKATE X 速查手册
   * KaTeX\KaTeXKATE X 公式大全
   * Markdown语法教程
   * Linux常用命令手册
   * 解决Vercel CORS跨域问题
 * 其他 1
   * hexo-encrypt密码插件测试
 * 其他教程 6
   * Github Calendar教程文档
   * PicGO图床配置
   * Hexo博客SEO相关收录教程
   * 云游君Hexo部署教程
   * 云游君yun主题配置教程
   * 搜索引擎搜索技巧
 * 算法题 13
   * C. LR-remainders
   * D - K-th Nearest
   * D - Synchronized Players
   * D. Find the Different Ones!
   * E. Final Countdown
   * P10126 「Daily OI Round 3」Pigeon
   * P1031 [NOIP2002 提高组] 均分纸牌
   * P1036 [NOIP2002 普及组] 选数
   * P1037 [NOIP2002 普及组] 产生数
   * P1060 [NOIP2006 普及组] 开心的金明
   * P1090 [NOIP2004 提高组] 合并果子
   * P1147 连续自然数和
   * P1364 医院设置
 * 数据结构与算法 28
   * 01Trie
   * AVL树与哈夫曼树
   * gcd 和 lcm
   * 乘法逆元
   * 二分枚举
   * 倍增LCA与Tarjan
   * 前缀和与差分
   * 动态规划
   * 单调栈与单调队列
   * 双指针
   * 图与回溯
   * 并查集
   * 快速幂
   * 排序算法
   * 最小生成树
   * 最短路
   * 权值线段树和主席树
   * 树与二叉树
   * 树状数组与ST表
   * 欧拉路径与哈密顿路径
   * 离散化
   * 算法复杂度分析
   * 组合数
   * 线段树
   * 背包问题
   * 质数筛
   * 贪心算法
   * 高精度算法
 * 编程语言入门 5
   * Python3基础教程
   * Python3爬虫基础
   * 类型声明黄金法则
   * Cpp基础教程
   * C语言基础教程
 * 编辑器与IDE 3
   * Qt 开发环境配置
   * VScode基本环境配置
   * VScode配置Clang和Cmake环境