acmer-coach 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/LICENSE +28 -0
  2. package/README.md +258 -0
  3. package/assets/extension/luogu/README.md +104 -0
  4. package/assets/extension/luogu/content.js +137 -0
  5. package/assets/extension/luogu/manifest.json +22 -0
  6. package/assets/knowledge/DEPENDS.yaml +391 -0
  7. package/assets/knowledge/LICENSE +41 -0
  8. package/assets/knowledge/MAP.yaml +2540 -0
  9. package/assets/knowledge/NODE_ENTRY.yaml +465 -0
  10. package/assets/knowledge/NODE_META.yaml +457 -0
  11. package/assets/knowledge/skilltree.html +1702 -0
  12. package/assets/oiwiki/LICENSE +49 -0
  13. package/assets/oiwiki/chunks.jsonl +2177 -0
  14. package/assets/oiwiki/node-pages.json +1208 -0
  15. package/assets/pool/LICENSE +83 -0
  16. package/assets/pool/problems.jsonl.gz +0 -0
  17. package/assets/rules/coach-rules.md +425 -0
  18. package/build-node-meta.mjs +98 -0
  19. package/coach/analyze_map.py +138 -0
  20. package/coach/build_map.py +230 -0
  21. package/coach/build_node_pages.py +105 -0
  22. package/coach/check_page_syntax.mjs +48 -0
  23. package/coach/coach-metrics.py +313 -0
  24. package/coach/export_oiwiki_chunks.py +100 -0
  25. package/coach/export_problem_pool.py +64 -0
  26. package/coach/extract_oiwiki.py +110 -0
  27. package/coach/oiwiki_tree.json +2987 -0
  28. package/coach/render_map.py +226 -0
  29. package/coach/render_skilltree.py +197 -0
  30. package/coach/serve_map.py +181 -0
  31. package/coach/skilltree_template.html +1702 -0
  32. package/coach/validate_map.py +184 -0
  33. package/coach/verify_drag.mjs +51 -0
  34. package/coach/verify_interact.mjs +82 -0
  35. package/coach/verify_serve.py +138 -0
  36. package/cordis.patch.yml +10 -0
  37. package/dev/parity-check.mjs +169 -0
  38. package/dev/run-all.sh +70 -0
  39. package/dev/setup-check.mjs +191 -0
  40. package/dev/w1-check.mjs +170 -0
  41. package/dev/wiki-check.mjs +100 -0
  42. package/dev.sh +142 -0
  43. package/docs//350/256/276/350/256/241/346/226/271/351/222/210.md +325 -0
  44. package/index.js +5820 -0
  45. package/lib/client.js +209 -0
  46. package/lib/setup.js +455 -0
  47. package/package.json +33 -0
  48. package/progress-cli.mjs +67 -0
  49. package/verify-shape.mjs +315 -0
  50. package/verify.mjs +3535 -0
@@ -0,0 +1,1208 @@
1
+ {
2
+ "RMQ": [
3
+ "topic/rmq.md"
4
+ ],
5
+ "并查集应用": [
6
+ "topic/dsu-app.md"
7
+ ],
8
+ "括号序列": [
9
+ "topic/bracket.md"
10
+ ],
11
+ "线段树与离线询问": [
12
+ "topic/segment-tree-offline.md"
13
+ ],
14
+ "DAG 上的 DP": [
15
+ "dp/dag.md"
16
+ ],
17
+ "DP 优化": [
18
+ "dp/opt/monotonous-queue-stack.md",
19
+ "dp/opt/slope.md",
20
+ "dp/opt/quadrangle.md",
21
+ "dp/opt/state.md"
22
+ ],
23
+ "其它 DP 方法": [
24
+ "dp/misc.md"
25
+ ],
26
+ "动态 DP": [
27
+ "dp/dynamic.md"
28
+ ],
29
+ "动态规划基础": [
30
+ "dp/basic.md"
31
+ ],
32
+ "区间 DP": [
33
+ "dp/interval.md"
34
+ ],
35
+ "插头 DP": [
36
+ "dp/plug.md"
37
+ ],
38
+ "数位 DP": [
39
+ "dp/number.md"
40
+ ],
41
+ "树形 DP": [
42
+ "dp/tree.md"
43
+ ],
44
+ "概率 DP": [
45
+ "dp/probability.md"
46
+ ],
47
+ "状压 DP": [
48
+ "dp/state.md"
49
+ ],
50
+ "背包 DP": [
51
+ "dp/knapsack.md"
52
+ ],
53
+ "计数 DP": [
54
+ "dp/count.md"
55
+ ],
56
+ "记忆化搜索": [
57
+ "dp/memo.md"
58
+ ],
59
+ "单调队列/单调栈优化": [
60
+ "dp/opt/monotonous-queue-stack.md"
61
+ ],
62
+ "四边形不等式优化": [
63
+ "dp/opt/quadrangle.md"
64
+ ],
65
+ "斜率优化": [
66
+ "dp/opt/slope.md"
67
+ ],
68
+ "状态设计优化": [
69
+ "dp/opt/state.md"
70
+ ],
71
+ "2-SAT": [
72
+ "graph/2-sat.md"
73
+ ],
74
+ "BFS(图论)": [
75
+ "graph/bfs.md"
76
+ ],
77
+ "DFS(图论)": [
78
+ "graph/dfs.md"
79
+ ],
80
+ "LGV 引理": [
81
+ "graph/lgv.md"
82
+ ],
83
+ "Prüfer 序列": [
84
+ "graph/prufer.md"
85
+ ],
86
+ "Stoer–Wagner 算法": [
87
+ "graph/stoer-wagner.md"
88
+ ],
89
+ "k 短路": [
90
+ "graph/kth-path.md"
91
+ ],
92
+ "二分图": [
93
+ "graph/bi-graph.md"
94
+ ],
95
+ "同余最短路": [
96
+ "graph/mod-shortest-path.md"
97
+ ],
98
+ "哈密顿图": [
99
+ "graph/hamilton.md"
100
+ ],
101
+ "图上随机游走": [
102
+ "graph/graph-random-walk.md"
103
+ ],
104
+ "图的匹配": [
105
+ "graph/graph-matching/graph-match.md",
106
+ "graph/graph-matching/augment.md",
107
+ "graph/graph-matching/bigraph-match.md",
108
+ "graph/graph-matching/bigraph-weight-match.md",
109
+ "graph/graph-matching/general-match.md",
110
+ "graph/graph-matching/general-weight-match.md"
111
+ ],
112
+ "图的存储": [
113
+ "graph/save.md"
114
+ ],
115
+ "图的着色": [
116
+ "graph/color.md"
117
+ ],
118
+ "图论相关概念": [
119
+ "graph/concept.md"
120
+ ],
121
+ "差分约束": [
122
+ "graph/diff-constraints.md"
123
+ ],
124
+ "平面图": [
125
+ "graph/planar.md"
126
+ ],
127
+ "弦图": [
128
+ "graph/chord.md"
129
+ ],
130
+ "拆点": [
131
+ "graph/node.md"
132
+ ],
133
+ "拓扑排序": [
134
+ "graph/topo.md"
135
+ ],
136
+ "支配树": [
137
+ "graph/dominator-tree.md"
138
+ ],
139
+ "斯坦纳树": [
140
+ "graph/steiner-tree.md"
141
+ ],
142
+ "最大团搜索算法": [
143
+ "graph/max-clique.md"
144
+ ],
145
+ "最小树形图": [
146
+ "graph/dmst.md"
147
+ ],
148
+ "最小环": [
149
+ "graph/min-cycle.md"
150
+ ],
151
+ "最小生成树": [
152
+ "graph/mst.md"
153
+ ],
154
+ "最小直径生成树": [
155
+ "graph/mdst.md"
156
+ ],
157
+ "最短路": [
158
+ "graph/shortest-path.md"
159
+ ],
160
+ "有向无环图": [
161
+ "graph/dag.md"
162
+ ],
163
+ "树上问题": [
164
+ "graph/tree-basic.md",
165
+ "graph/tree-diameter.md",
166
+ "graph/lca.md",
167
+ "graph/tree-centroid.md",
168
+ "graph/hld.md",
169
+ "graph/dsu-on-tree.md",
170
+ "graph/virtual-tree.md",
171
+ "graph/tree-divide.md",
172
+ "graph/dynamic-tree-divide.md",
173
+ "graph/tree-ahu.md",
174
+ "graph/tree-hash.md",
175
+ "graph/tree-random-walk.md"
176
+ ],
177
+ "欧拉图": [
178
+ "graph/euler.md"
179
+ ],
180
+ "环计数问题": [
181
+ "graph/rings-count.md"
182
+ ],
183
+ "矩阵树定理": [
184
+ "graph/matrix-tree.md"
185
+ ],
186
+ "网络流": [
187
+ "graph/flow.md",
188
+ "graph/flow/max-flow.md",
189
+ "graph/flow/min-cut.md",
190
+ "graph/flow/min-cost.md",
191
+ "graph/flow/bound.md"
192
+ ],
193
+ "连通性相关": [
194
+ "graph/scc.md",
195
+ "graph/bcc.md",
196
+ "graph/cut.md",
197
+ "graph/block-forest.md",
198
+ "graph/connectivity.md"
199
+ ],
200
+ "一般图最大匹配": [
201
+ "graph/graph-matching/general-match.md"
202
+ ],
203
+ "一般图最大权匹配": [
204
+ "graph/graph-matching/general-weight-match.md"
205
+ ],
206
+ "二分图最大匹配": [
207
+ "graph/graph-matching/bigraph-match.md"
208
+ ],
209
+ "二分图最大权匹配": [
210
+ "graph/graph-matching/bigraph-weight-match.md"
211
+ ],
212
+ "图匹配": [
213
+ "graph/graph-matching/graph-match.md"
214
+ ],
215
+ "增广路": [
216
+ "graph/graph-matching/augment.md"
217
+ ],
218
+ "AHU 算法": [
219
+ "graph/tree-ahu.md"
220
+ ],
221
+ "动态树分治": [
222
+ "graph/dynamic-tree-divide.md"
223
+ ],
224
+ "最近公共祖先": [
225
+ "graph/lca.md"
226
+ ],
227
+ "树上启发式合并": [
228
+ "graph/dsu-on-tree.md"
229
+ ],
230
+ "树上随机游走": [
231
+ "graph/tree-random-walk.md"
232
+ ],
233
+ "树分治": [
234
+ "graph/tree-divide.md"
235
+ ],
236
+ "树哈希": [
237
+ "graph/tree-hash.md"
238
+ ],
239
+ "树基础": [
240
+ "graph/tree-basic.md"
241
+ ],
242
+ "树的直径": [
243
+ "graph/tree-diameter.md"
244
+ ],
245
+ "树的重心": [
246
+ "graph/tree-centroid.md"
247
+ ],
248
+ "树链剖分": [
249
+ "graph/hld.md"
250
+ ],
251
+ "虚树": [
252
+ "graph/virtual-tree.md"
253
+ ],
254
+ "上下界网络流": [
255
+ "graph/flow/bound.md"
256
+ ],
257
+ "最大流": [
258
+ "graph/flow/max-flow.md"
259
+ ],
260
+ "最小割": [
261
+ "graph/flow/min-cut.md"
262
+ ],
263
+ "费用流": [
264
+ "graph/flow/min-cost.md"
265
+ ],
266
+ "割点和桥": [
267
+ "graph/cut.md"
268
+ ],
269
+ "双连通分量": [
270
+ "graph/bcc.md"
271
+ ],
272
+ "圆方树": [
273
+ "graph/block-forest.md"
274
+ ],
275
+ "强连通分量": [
276
+ "graph/scc.md"
277
+ ],
278
+ "点/边连通度": [
279
+ "graph/connectivity.md"
280
+ ],
281
+ "AC 自动机": [
282
+ "string/ac-automaton.md"
283
+ ],
284
+ "Boyer–Moore 算法": [
285
+ "string/bm.md"
286
+ ],
287
+ "Lyndon 分解": [
288
+ "string/lyndon.md"
289
+ ],
290
+ "Main–Lorentz 算法": [
291
+ "string/main-lorentz.md"
292
+ ],
293
+ "Manacher": [
294
+ "string/manacher.md"
295
+ ],
296
+ "Z 函数(扩展 KMP)": [
297
+ "string/z-func.md"
298
+ ],
299
+ "前缀函数与 KMP 算法": [
300
+ "string/kmp.md"
301
+ ],
302
+ "后缀平衡树": [
303
+ "string/suffix-bst.md"
304
+ ],
305
+ "后缀数组 (SA)": [
306
+ "string/sa.md",
307
+ "string/sa-optimal-inplace.md"
308
+ ],
309
+ "后缀树": [
310
+ "string/suffix-tree.md"
311
+ ],
312
+ "后缀自动机 (SAM)": [
313
+ "string/sam.md"
314
+ ],
315
+ "回文树": [
316
+ "string/pam.md"
317
+ ],
318
+ "字典树 (Trie)": [
319
+ "string/trie.md"
320
+ ],
321
+ "字符串匹配": [
322
+ "string/match.md"
323
+ ],
324
+ "字符串哈希": [
325
+ "string/hash.md"
326
+ ],
327
+ "字符串基础": [
328
+ "string/basic.md"
329
+ ],
330
+ "广义后缀自动机": [
331
+ "string/general-sam.md"
332
+ ],
333
+ "序列自动机": [
334
+ "string/seq-automaton.md"
335
+ ],
336
+ "最小表示法": [
337
+ "string/minimal-string.md"
338
+ ],
339
+ "标准库": [
340
+ "string/lib-func.md"
341
+ ],
342
+ "自动机": [
343
+ "string/automaton.md"
344
+ ],
345
+ "最优原地后缀排序算法": [
346
+ "string/sa-optimal-inplace.md"
347
+ ],
348
+ "A*": [
349
+ "search/astar.md"
350
+ ],
351
+ "Alpha-Beta 剪枝": [
352
+ "search/alpha-beta.md"
353
+ ],
354
+ "BFS(搜索)": [
355
+ "search/bfs.md"
356
+ ],
357
+ "DFS(搜索)": [
358
+ "search/dfs.md"
359
+ ],
360
+ "Dancing Links": [
361
+ "search/dlx.md"
362
+ ],
363
+ "IDA*": [
364
+ "search/idastar.md"
365
+ ],
366
+ "优化": [
367
+ "search/opt.md"
368
+ ],
369
+ "双向搜索": [
370
+ "search/bidirectional.md"
371
+ ],
372
+ "启发式搜索": [
373
+ "search/heuristic.md"
374
+ ],
375
+ "回溯法": [
376
+ "search/backtracking.md"
377
+ ],
378
+ "迭代加深搜索": [
379
+ "search/iterative.md"
380
+ ],
381
+ "Berlekamp–Massey 算法": [
382
+ "math/berlekamp-massey.md"
383
+ ],
384
+ "Schreier–Sims 算法": [
385
+ "math/schreier-sims.md"
386
+ ],
387
+ "二进制集合操作": [
388
+ "math/binary-set.md"
389
+ ],
390
+ "位运算": [
391
+ "math/bit.md"
392
+ ],
393
+ "傅里叶-莫茨金消元法": [
394
+ "math/fourier-motzkin-elimination.md"
395
+ ],
396
+ "博弈论": [
397
+ "math/game-theory/intro.md",
398
+ "math/game-theory/impartial-game.md",
399
+ "math/game-theory/partizan-game.md",
400
+ "math/game-theory/misere-game.md"
401
+ ],
402
+ "复数": [
403
+ "math/complex.md"
404
+ ],
405
+ "多项式与生成函数": [
406
+ "math/poly/intro.md",
407
+ "math/poly/fundamental.md",
408
+ "math/poly/fft.md",
409
+ "math/poly/ntt.md",
410
+ "math/poly/fwt.md",
411
+ "math/poly/czt.md",
412
+ "math/poly/newton.md",
413
+ "math/poly/multipoint-eval-interpolation.md",
414
+ "math/poly/elementary-func.md",
415
+ "math/poly/linear-recurrence.md",
416
+ "math/poly/shift.md",
417
+ "math/poly/symbolic-method.md",
418
+ "math/poly/ogf.md",
419
+ "math/poly/egf.md",
420
+ "math/poly/dgf.md"
421
+ ],
422
+ "平衡三进制": [
423
+ "math/balanced-ternary.md"
424
+ ],
425
+ "序理论": [
426
+ "math/order-theory.md"
427
+ ],
428
+ "弧度制与坐标系": [
429
+ "math/coordinate.md"
430
+ ],
431
+ "快速幂": [
432
+ "math/binary-exponentiation.md"
433
+ ],
434
+ "数值算法": [
435
+ "math/numerical/lagrange.md",
436
+ "math/numerical/integral.md",
437
+ "math/numerical/gauss.md",
438
+ "math/numerical/newton.md"
439
+ ],
440
+ "数论": [
441
+ "math/number-theory/basic.md",
442
+ "math/number-theory/prime.md",
443
+ "math/number-theory/gcd.md",
444
+ "math/number-theory/sqrt-decomposition.md",
445
+ "math/number-theory/euler-totient.md",
446
+ "math/number-theory/sieve.md",
447
+ "math/number-theory/meissel-lehmer.md",
448
+ "math/number-theory/pollard-rho.md",
449
+ "math/number-theory/bezouts.md",
450
+ "math/number-theory/euclidean.md",
451
+ "math/number-theory/fermat.md",
452
+ "math/number-theory/inverse.md",
453
+ "math/number-theory/linear-equation.md",
454
+ "math/number-theory/crt.md",
455
+ "math/number-theory/lift-the-exponent.md",
456
+ "math/number-theory/wilson.md",
457
+ "math/number-theory/lucas.md",
458
+ "math/number-theory/congruence-equation.md",
459
+ "math/number-theory/quad-residue.md",
460
+ "math/number-theory/primitive-root.md",
461
+ "math/number-theory/discrete-logarithm.md",
462
+ "math/number-theory/residue.md",
463
+ "math/number-theory/mobius.md",
464
+ "math/number-theory/du.md",
465
+ "math/number-theory/powerful-number.md",
466
+ "math/number-theory/min-25.md",
467
+ "math/number-theory/zhou.md",
468
+ "math/number-theory/continued-fraction.md",
469
+ "math/number-theory/stern-brocot.md",
470
+ "math/number-theory/quadratic.md",
471
+ "math/number-theory/periodic-continued-fraction.md",
472
+ "math/number-theory/pell-equation.md"
473
+ ],
474
+ "杨氏矩阵": [
475
+ "math/young-tableau.md"
476
+ ],
477
+ "概率论": [
478
+ "math/probability/basic-conception.md",
479
+ "math/probability/conditional-probability.md",
480
+ "math/probability/random-variable.md",
481
+ "math/probability/exp-var.md",
482
+ "math/probability/concentration-inequality.md"
483
+ ],
484
+ "符号": [
485
+ "math/notation.md"
486
+ ],
487
+ "线性代数": [
488
+ "math/linear-algebra/index.md",
489
+ "math/linear-algebra/vector.md",
490
+ "math/linear-algebra/product.md",
491
+ "math/linear-algebra/matrix.md",
492
+ "math/linear-algebra/elementary-operations.md",
493
+ "math/linear-algebra/determinant.md",
494
+ "math/linear-algebra/vector-space.md",
495
+ "math/linear-algebra/basis.md",
496
+ "math/linear-algebra/linear-mapping.md",
497
+ "math/linear-algebra/char-poly.md",
498
+ "math/linear-algebra/diagonalization.md",
499
+ "math/linear-algebra/jordan.md"
500
+ ],
501
+ "线性规划": [
502
+ "math/linear-programming.md",
503
+ "math/simplex.md"
504
+ ],
505
+ "组合数学": [
506
+ "math/combinatorics/combination.md",
507
+ "math/combinatorics/drawer-principle.md",
508
+ "math/combinatorics/inclusion-exclusion-principle.md",
509
+ "math/combinatorics/cantor.md",
510
+ "math/combinatorics/fibonacci.md",
511
+ "math/combinatorics/derangement.md",
512
+ "math/combinatorics/catalan.md",
513
+ "math/combinatorics/stirling.md",
514
+ "math/combinatorics/bell.md",
515
+ "math/combinatorics/bernoulli.md",
516
+ "math/combinatorics/entringer.md",
517
+ "math/combinatorics/eulerian.md",
518
+ "math/combinatorics/partition.md",
519
+ "math/combinatorics/vandermonde-convolution.md",
520
+ "math/combinatorics/graph-enumeration.md"
521
+ ],
522
+ "置换和排列": [
523
+ "math/permutation.md"
524
+ ],
525
+ "群论": [
526
+ "math/group-theory.md",
527
+ "math/permutation-group.md"
528
+ ],
529
+ "进位制": [
530
+ "math/base.md"
531
+ ],
532
+ "高精度计算": [
533
+ "math/bignum.md"
534
+ ],
535
+ "公平组合游戏": [
536
+ "math/game-theory/impartial-game.md"
537
+ ],
538
+ "反常游戏": [
539
+ "math/game-theory/misere-game.md"
540
+ ],
541
+ "非公平组合游戏": [
542
+ "math/game-theory/partizan-game.md"
543
+ ],
544
+ "Chirp Z 变换": [
545
+ "math/poly/czt.md"
546
+ ],
547
+ "代数基本定理": [
548
+ "math/poly/fundamental.md"
549
+ ],
550
+ "多项式初等函数": [
551
+ "math/poly/elementary-func.md"
552
+ ],
553
+ "多项式多点求值|快速插值": [
554
+ "math/poly/multipoint-eval-interpolation.md"
555
+ ],
556
+ "多项式平移|连续点值平移": [
557
+ "math/poly/shift.md"
558
+ ],
559
+ "多项式牛顿迭代": [
560
+ "math/poly/newton.md"
561
+ ],
562
+ "常系数齐次线性递推": [
563
+ "math/poly/linear-recurrence.md"
564
+ ],
565
+ "快速傅里叶变换": [
566
+ "math/poly/fft.md"
567
+ ],
568
+ "快速数论变换": [
569
+ "math/poly/ntt.md"
570
+ ],
571
+ "快速沃尔什变换": [
572
+ "math/poly/fwt.md"
573
+ ],
574
+ "指数生成函数": [
575
+ "math/poly/egf.md"
576
+ ],
577
+ "普通生成函数": [
578
+ "math/poly/ogf.md"
579
+ ],
580
+ "狄利克雷生成函数": [
581
+ "math/poly/dgf.md"
582
+ ],
583
+ "符号化方法": [
584
+ "math/poly/symbolic-method.md"
585
+ ],
586
+ "拉格朗日插值": [
587
+ "math/numerical/lagrange.md"
588
+ ],
589
+ "数值积分": [
590
+ "math/numerical/integral.md"
591
+ ],
592
+ "牛顿迭代法": [
593
+ "math/numerical/newton.md"
594
+ ],
595
+ "高斯消元": [
596
+ "math/numerical/gauss.md"
597
+ ],
598
+ "Meissel–Lehmer 算法": [
599
+ "math/number-theory/meissel-lehmer.md"
600
+ ],
601
+ "Min_25 筛": [
602
+ "math/number-theory/min-25.md"
603
+ ],
604
+ "Pell 方程": [
605
+ "math/number-theory/pell-equation.md"
606
+ ],
607
+ "Powerful Number 筛": [
608
+ "math/number-theory/powerful-number.md"
609
+ ],
610
+ "Stern–Brocot 树与 Farey 序列": [
611
+ "math/number-theory/stern-brocot.md"
612
+ ],
613
+ "中国剩余定理": [
614
+ "math/number-theory/crt.md"
615
+ ],
616
+ "乘法逆元": [
617
+ "math/number-theory/inverse.md"
618
+ ],
619
+ "二次剩余": [
620
+ "math/number-theory/quad-residue.md"
621
+ ],
622
+ "二次域": [
623
+ "math/number-theory/quadratic.md"
624
+ ],
625
+ "分解质因数": [
626
+ "math/number-theory/pollard-rho.md"
627
+ ],
628
+ "剩余": [
629
+ "math/number-theory/residue.md"
630
+ ],
631
+ "升幂引理": [
632
+ "math/number-theory/lift-the-exponent.md"
633
+ ],
634
+ "卢卡斯定理": [
635
+ "math/number-theory/lucas.md"
636
+ ],
637
+ "原根": [
638
+ "math/number-theory/primitive-root.md"
639
+ ],
640
+ "同余方程": [
641
+ "math/number-theory/congruence-equation.md"
642
+ ],
643
+ "威尔逊定理": [
644
+ "math/number-theory/wilson.md"
645
+ ],
646
+ "循环连分数": [
647
+ "math/number-theory/periodic-continued-fraction.md"
648
+ ],
649
+ "数论分块": [
650
+ "math/number-theory/sqrt-decomposition.md"
651
+ ],
652
+ "数论基础": [
653
+ "math/number-theory/basic.md"
654
+ ],
655
+ "最大公约数": [
656
+ "math/number-theory/gcd.md"
657
+ ],
658
+ "杜教筛": [
659
+ "math/number-theory/du.md"
660
+ ],
661
+ "欧拉函数": [
662
+ "math/number-theory/euler-totient.md"
663
+ ],
664
+ "欧拉定理 & 费马小定理": [
665
+ "math/number-theory/fermat.md"
666
+ ],
667
+ "洲阁筛": [
668
+ "math/number-theory/zhou.md"
669
+ ],
670
+ "离散对数": [
671
+ "math/number-theory/discrete-logarithm.md"
672
+ ],
673
+ "筛法": [
674
+ "math/number-theory/sieve.md"
675
+ ],
676
+ "类欧几里德算法": [
677
+ "math/number-theory/euclidean.md"
678
+ ],
679
+ "素数": [
680
+ "math/number-theory/prime.md"
681
+ ],
682
+ "线性同余方程": [
683
+ "math/number-theory/linear-equation.md"
684
+ ],
685
+ "莫比乌斯反演": [
686
+ "math/number-theory/mobius.md"
687
+ ],
688
+ "裴蜀定理": [
689
+ "math/number-theory/bezouts.md"
690
+ ],
691
+ "连分数": [
692
+ "math/number-theory/continued-fraction.md"
693
+ ],
694
+ "基本概念": [
695
+ "math/probability/basic-conception.md"
696
+ ],
697
+ "条件概率与独立性": [
698
+ "math/probability/conditional-probability.md"
699
+ ],
700
+ "概率不等式": [
701
+ "math/probability/concentration-inequality.md"
702
+ ],
703
+ "随机变量": [
704
+ "math/probability/random-variable.md"
705
+ ],
706
+ "随机变量的数字特征": [
707
+ "math/probability/exp-var.md"
708
+ ],
709
+ "Jordan标准型": [
710
+ "math/linear-algebra/jordan.md"
711
+ ],
712
+ "内积和外积": [
713
+ "math/linear-algebra/product.md"
714
+ ],
715
+ "初等变换": [
716
+ "math/linear-algebra/elementary-operations.md"
717
+ ],
718
+ "向量": [
719
+ "math/linear-algebra/vector.md"
720
+ ],
721
+ "对角化": [
722
+ "math/linear-algebra/diagonalization.md"
723
+ ],
724
+ "特征多项式": [
725
+ "math/linear-algebra/char-poly.md"
726
+ ],
727
+ "矩阵": [
728
+ "math/linear-algebra/matrix.md"
729
+ ],
730
+ "线性基": [
731
+ "math/linear-algebra/basis.md"
732
+ ],
733
+ "线性映射": [
734
+ "math/linear-algebra/linear-mapping.md"
735
+ ],
736
+ "线性空间": [
737
+ "math/linear-algebra/vector-space.md"
738
+ ],
739
+ "行列式": [
740
+ "math/linear-algebra/determinant.md"
741
+ ],
742
+ "单纯形算法": [
743
+ "math/simplex.md"
744
+ ],
745
+ "Entringer Number": [
746
+ "math/combinatorics/entringer.md"
747
+ ],
748
+ "Eulerian Number": [
749
+ "math/combinatorics/eulerian.md"
750
+ ],
751
+ "伯努利数": [
752
+ "math/combinatorics/bernoulli.md"
753
+ ],
754
+ "分拆数": [
755
+ "math/combinatorics/partition.md"
756
+ ],
757
+ "卡特兰数": [
758
+ "math/combinatorics/catalan.md"
759
+ ],
760
+ "图论计数": [
761
+ "math/combinatorics/graph-enumeration.md"
762
+ ],
763
+ "容斥原理": [
764
+ "math/combinatorics/inclusion-exclusion-principle.md"
765
+ ],
766
+ "康托展开": [
767
+ "math/combinatorics/cantor.md"
768
+ ],
769
+ "抽屉原理": [
770
+ "math/combinatorics/drawer-principle.md"
771
+ ],
772
+ "排列组合": [
773
+ "math/combinatorics/combination.md"
774
+ ],
775
+ "斐波那契数列": [
776
+ "math/combinatorics/fibonacci.md"
777
+ ],
778
+ "斯特林数": [
779
+ "math/combinatorics/stirling.md"
780
+ ],
781
+ "范德蒙德卷积": [
782
+ "math/combinatorics/vandermonde-convolution.md"
783
+ ],
784
+ "贝尔数": [
785
+ "math/combinatorics/bell.md"
786
+ ],
787
+ "错位排列": [
788
+ "math/combinatorics/derangement.md"
789
+ ],
790
+ "置换群": [
791
+ "math/permutation-group.md"
792
+ ],
793
+ "K-D Tree": [
794
+ "ds/kdt.md"
795
+ ],
796
+ "PQ 树": [
797
+ "ds/pq-tree.md"
798
+ ],
799
+ "ST 表": [
800
+ "ds/sparse-table.md"
801
+ ],
802
+ "二叉搜索树 & 平衡树": [
803
+ "ds/bst.md"
804
+ ],
805
+ "划分树": [
806
+ "ds/dividing.md"
807
+ ],
808
+ "动态树": [
809
+ "ds/lct.md",
810
+ "ds/ett.md",
811
+ "ds/top-tree.md"
812
+ ],
813
+ "区间最值操作 & 区间历史最值": [
814
+ "ds/seg-beats.md"
815
+ ],
816
+ "单调栈": [
817
+ "ds/monotonous-stack.md"
818
+ ],
819
+ "单调队列": [
820
+ "ds/monotonous-queue.md"
821
+ ],
822
+ "可持久化数据结构": [
823
+ "ds/persistent.md",
824
+ "ds/persistent-seg.md",
825
+ "ds/persistent-block-array.md",
826
+ "ds/persistent-balanced.md",
827
+ "ds/persistent-trie.md",
828
+ "ds/persistent-heap.md"
829
+ ],
830
+ "哈希表": [
831
+ "ds/hash.md"
832
+ ],
833
+ "块状数据结构": [
834
+ "ds/decompose.md",
835
+ "ds/block-array.md",
836
+ "ds/block-list.md",
837
+ "ds/tree-decompose.md",
838
+ "ds/sqrt-tree.md"
839
+ ],
840
+ "堆": [
841
+ "lang/pb-ds/pq.md"
842
+ ],
843
+ "并查集": [
844
+ "ds/dsu.md"
845
+ ],
846
+ "手指树": [
847
+ "ds/finger-tree.md"
848
+ ],
849
+ "李超线段树": [
850
+ "ds/li-chao-tree.md"
851
+ ],
852
+ "析合树": [
853
+ "ds/divide-combine.md"
854
+ ],
855
+ "栈": [
856
+ "ds/stack.md"
857
+ ],
858
+ "树套树": [
859
+ "ds/seg-in-seg.md",
860
+ "ds/seg-in-balanced.md",
861
+ "ds/balanced-in-seg.md",
862
+ "ds/seg-in-bit.md",
863
+ "ds/bit-in-block-array.md"
864
+ ],
865
+ "树状数组": [
866
+ "ds/fenwick.md"
867
+ ],
868
+ "线段树": [
869
+ "ds/seg.md"
870
+ ],
871
+ "跳表": [
872
+ "ds/skiplist.md"
873
+ ],
874
+ "链表": [
875
+ "ds/linked-list.md"
876
+ ],
877
+ "队列": [
878
+ "ds/queue.md"
879
+ ],
880
+ "霍夫曼树": [
881
+ "ds/huffman-tree.md"
882
+ ],
883
+ "2-3 树": [
884
+ "ds/2-3-tree.md"
885
+ ],
886
+ "AA 树": [
887
+ "ds/aa-tree.md"
888
+ ],
889
+ "AVL 树": [
890
+ "ds/avl.md"
891
+ ],
892
+ "B 树": [
893
+ "ds/b-tree.md"
894
+ ],
895
+ "B+ 树": [
896
+ "ds/bplus-tree.md"
897
+ ],
898
+ "Leafy Tree": [
899
+ "ds/leafy-tree.md"
900
+ ],
901
+ "Size Balanced Tree": [
902
+ "ds/sbt.md"
903
+ ],
904
+ "Splay 树": [
905
+ "ds/splay.md"
906
+ ],
907
+ "Treap": [
908
+ "ds/treap.md"
909
+ ],
910
+ "WBLT": [
911
+ "ds/wblt.md"
912
+ ],
913
+ "左偏红黑树": [
914
+ "ds/llrbt.md"
915
+ ],
916
+ "替罪羊树": [
917
+ "ds/sgt.md"
918
+ ],
919
+ "笛卡尔树": [
920
+ "ds/cartesian-tree.md"
921
+ ],
922
+ "红黑树": [
923
+ "ds/rbtree.md"
924
+ ],
925
+ "Euler Tour Tree": [
926
+ "ds/ett.md"
927
+ ],
928
+ "Link Cut Tree": [
929
+ "ds/lct.md"
930
+ ],
931
+ "Top Tree": [
932
+ "ds/top-tree.md"
933
+ ],
934
+ "可持久化可并堆": [
935
+ "ds/persistent-heap.md"
936
+ ],
937
+ "可持久化块状数组": [
938
+ "ds/persistent-block-array.md"
939
+ ],
940
+ "可持久化字典树": [
941
+ "ds/persistent-trie.md"
942
+ ],
943
+ "可持久化平衡树": [
944
+ "ds/persistent-balanced.md"
945
+ ],
946
+ "可持久化线段树": [
947
+ "ds/persistent-seg.md"
948
+ ],
949
+ "Sqrt Tree": [
950
+ "ds/sqrt-tree.md"
951
+ ],
952
+ "分块思想": [
953
+ "ds/decompose.md"
954
+ ],
955
+ "块状数组": [
956
+ "ds/block-array.md"
957
+ ],
958
+ "块状链表": [
959
+ "ds/block-list.md"
960
+ ],
961
+ "树分块": [
962
+ "ds/tree-decompose.md"
963
+ ],
964
+ "二叉堆": [
965
+ "ds/binary-heap.md"
966
+ ],
967
+ "左偏树": [
968
+ "ds/leftist-tree.md"
969
+ ],
970
+ "配对堆": [
971
+ "ds/pairing-heap.md"
972
+ ],
973
+ "并查集复杂度": [
974
+ "ds/dsu-complexity.md"
975
+ ],
976
+ "分块套树状数组": [
977
+ "ds/bit-in-block-array.md"
978
+ ],
979
+ "平衡树套线段树": [
980
+ "ds/seg-in-balanced.md"
981
+ ],
982
+ "树状数组套权值线段树": [
983
+ "ds/seg-in-bit.md"
984
+ ],
985
+ "线段树套平衡树": [
986
+ "ds/balanced-in-seg.md"
987
+ ],
988
+ "线段树套线段树": [
989
+ "ds/seg-in-seg.md"
990
+ ],
991
+ "15-puzzle": [
992
+ "misc/15-puzzle.md"
993
+ ],
994
+ "Garsia–Wachs 算法": [
995
+ "misc/garsia-wachs.md"
996
+ ],
997
+ "Kahan 求和": [
998
+ "misc/kahan-summation.md"
999
+ ],
1000
+ "主元素问题": [
1001
+ "misc/main-element.md"
1002
+ ],
1003
+ "分数规划": [
1004
+ "misc/frac-programming.md"
1005
+ ],
1006
+ "双指针": [
1007
+ "misc/two-pointer.md"
1008
+ ],
1009
+ "在一台机器上规划任务": [
1010
+ "misc/job-order.md"
1011
+ ],
1012
+ "字节顺序": [
1013
+ "misc/endianness.md"
1014
+ ],
1015
+ "悬线法": [
1016
+ "misc/hoverline.md"
1017
+ ],
1018
+ "格雷码": [
1019
+ "misc/gray-code.md"
1020
+ ],
1021
+ "珂朵莉树/颜色段均摊": [
1022
+ "misc/odt.md"
1023
+ ],
1024
+ "离散化": [
1025
+ "misc/discrete.md"
1026
+ ],
1027
+ "离线算法": [
1028
+ "misc/offline.md",
1029
+ "misc/cdq-divide.md",
1030
+ "misc/parallel-binsearch.md",
1031
+ "misc/mo-algo-intro.md",
1032
+ "misc/mo-algo.md",
1033
+ "misc/modifiable-mo-algo.md",
1034
+ "misc/mo-algo-on-tree.md",
1035
+ "misc/rollback-mo-algo.md",
1036
+ "misc/mo-algo-2dimen.md",
1037
+ "misc/mo-algo-secondary-offline.md",
1038
+ "misc/mo-algo-with-bitset.md"
1039
+ ],
1040
+ "约瑟夫问题": [
1041
+ "misc/josephus.md"
1042
+ ],
1043
+ "表达式求值": [
1044
+ "misc/expression.md"
1045
+ ],
1046
+ "计算理论基础": [
1047
+ "misc/cc-basic.md"
1048
+ ],
1049
+ "随机化": [
1050
+ "misc/random.md",
1051
+ "misc/rand-technique.md",
1052
+ "misc/hill-climbing.md",
1053
+ "misc/simulated-annealing.md"
1054
+ ],
1055
+ "CDQ 分治": [
1056
+ "misc/cdq-divide.md"
1057
+ ],
1058
+ "整体二分": [
1059
+ "misc/parallel-binsearch.md"
1060
+ ],
1061
+ "莫队算法": [
1062
+ "misc/mo-algo-intro.md",
1063
+ "misc/mo-algo.md",
1064
+ "misc/modifiable-mo-algo.md",
1065
+ "misc/mo-algo-on-tree.md",
1066
+ "misc/rollback-mo-algo.md",
1067
+ "misc/mo-algo-2dimen.md",
1068
+ "misc/mo-algo-secondary-offline.md",
1069
+ "misc/mo-algo-with-bitset.md"
1070
+ ],
1071
+ "模拟退火": [
1072
+ "misc/simulated-annealing.md"
1073
+ ],
1074
+ "爬山算法": [
1075
+ "misc/hill-climbing.md"
1076
+ ],
1077
+ "随机函数": [
1078
+ "misc/random.md"
1079
+ ],
1080
+ "随机化技巧": [
1081
+ "misc/rand-technique.md"
1082
+ ],
1083
+ "二分": [
1084
+ "basic/binary.md"
1085
+ ],
1086
+ "倍增": [
1087
+ "basic/binary-lifting.md"
1088
+ ],
1089
+ "前缀和 & 差分": [
1090
+ "basic/prefix-sum.md"
1091
+ ],
1092
+ "复杂度": [
1093
+ "basic/complexity.md"
1094
+ ],
1095
+ "排序": [
1096
+ "basic/sort-intro.md",
1097
+ "basic/selection-sort.md",
1098
+ "basic/bubble-sort.md",
1099
+ "basic/insertion-sort.md",
1100
+ "basic/counting-sort.md",
1101
+ "basic/radix-sort.md",
1102
+ "basic/quick-sort.md",
1103
+ "basic/merge-sort.md",
1104
+ "basic/heap-sort.md",
1105
+ "basic/bucket-sort.md",
1106
+ "basic/shell-sort.md",
1107
+ "basic/tournament-sort.md",
1108
+ "basic/tim-sort.md",
1109
+ "basic/stl-sort.md",
1110
+ "basic/use-of-sort.md"
1111
+ ],
1112
+ "构造": [
1113
+ "basic/construction.md"
1114
+ ],
1115
+ "枚举": [
1116
+ "basic/enumerate.md"
1117
+ ],
1118
+ "模拟": [
1119
+ "basic/simulate.md"
1120
+ ],
1121
+ "贪心": [
1122
+ "basic/greedy.md"
1123
+ ],
1124
+ "递归 & 分治": [
1125
+ "basic/divide-and-conquer.md"
1126
+ ],
1127
+ "tim排序": [
1128
+ "basic/tim-sort.md"
1129
+ ],
1130
+ "冒泡排序": [
1131
+ "basic/bubble-sort.md"
1132
+ ],
1133
+ "基数排序": [
1134
+ "basic/radix-sort.md"
1135
+ ],
1136
+ "堆排序": [
1137
+ "basic/heap-sort.md"
1138
+ ],
1139
+ "希尔排序": [
1140
+ "basic/shell-sort.md"
1141
+ ],
1142
+ "归并排序": [
1143
+ "basic/merge-sort.md"
1144
+ ],
1145
+ "快速排序": [
1146
+ "basic/quick-sort.md"
1147
+ ],
1148
+ "排序应用": [
1149
+ "basic/use-of-sort.md"
1150
+ ],
1151
+ "排序相关 STL": [
1152
+ "basic/stl-sort.md"
1153
+ ],
1154
+ "插入排序": [
1155
+ "basic/insertion-sort.md"
1156
+ ],
1157
+ "桶排序": [
1158
+ "basic/bucket-sort.md"
1159
+ ],
1160
+ "计数排序": [
1161
+ "basic/counting-sort.md"
1162
+ ],
1163
+ "选择排序": [
1164
+ "basic/selection-sort.md"
1165
+ ],
1166
+ "锦标赛排序": [
1167
+ "basic/tournament-sort.md"
1168
+ ],
1169
+ "Pick 定理": [
1170
+ "geometry/pick.md"
1171
+ ],
1172
+ "三维计算几何基础": [
1173
+ "geometry/3d.md"
1174
+ ],
1175
+ "三角剖分": [
1176
+ "geometry/triangulation.md"
1177
+ ],
1178
+ "二维计算几何基础": [
1179
+ "geometry/2d.md"
1180
+ ],
1181
+ "凸包": [
1182
+ "geometry/convex-hull.md"
1183
+ ],
1184
+ "半平面交": [
1185
+ "geometry/half-plane.md"
1186
+ ],
1187
+ "反演变换": [
1188
+ "geometry/inverse.md"
1189
+ ],
1190
+ "平面最近点对": [
1191
+ "geometry/nearest-points.md"
1192
+ ],
1193
+ "扫描线": [
1194
+ "geometry/scanning.md"
1195
+ ],
1196
+ "旋转卡壳": [
1197
+ "geometry/rotating-calipers.md"
1198
+ ],
1199
+ "计算几何杂项": [
1200
+ "geometry/misc.md"
1201
+ ],
1202
+ "距离": [
1203
+ "geometry/distance.md"
1204
+ ],
1205
+ "随机增量法": [
1206
+ "geometry/random-incremental.md"
1207
+ ]
1208
+ }