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,2987 @@
1
+ [
2
+ {
3
+ "domain": "算法基础",
4
+ "path": [
5
+ "复杂度"
6
+ ],
7
+ "name": "复杂度",
8
+ "file": "basic/complexity.md"
9
+ },
10
+ {
11
+ "domain": "算法基础",
12
+ "path": [
13
+ "枚举"
14
+ ],
15
+ "name": "枚举",
16
+ "file": "basic/enumerate.md"
17
+ },
18
+ {
19
+ "domain": "算法基础",
20
+ "path": [
21
+ "模拟"
22
+ ],
23
+ "name": "模拟",
24
+ "file": "basic/simulate.md"
25
+ },
26
+ {
27
+ "domain": "算法基础",
28
+ "path": [
29
+ "递归 & 分治"
30
+ ],
31
+ "name": "递归 & 分治",
32
+ "file": "basic/divide-and-conquer.md"
33
+ },
34
+ {
35
+ "domain": "算法基础",
36
+ "path": [
37
+ "贪心"
38
+ ],
39
+ "name": "贪心",
40
+ "file": "basic/greedy.md"
41
+ },
42
+ {
43
+ "domain": "算法基础",
44
+ "path": [
45
+ "排序"
46
+ ],
47
+ "name": "排序",
48
+ "file": null
49
+ },
50
+ {
51
+ "domain": "算法基础",
52
+ "path": [
53
+ "排序",
54
+ "选择排序"
55
+ ],
56
+ "name": "选择排序",
57
+ "file": "basic/selection-sort.md"
58
+ },
59
+ {
60
+ "domain": "算法基础",
61
+ "path": [
62
+ "排序",
63
+ "冒泡排序"
64
+ ],
65
+ "name": "冒泡排序",
66
+ "file": "basic/bubble-sort.md"
67
+ },
68
+ {
69
+ "domain": "算法基础",
70
+ "path": [
71
+ "排序",
72
+ "插入排序"
73
+ ],
74
+ "name": "插入排序",
75
+ "file": "basic/insertion-sort.md"
76
+ },
77
+ {
78
+ "domain": "算法基础",
79
+ "path": [
80
+ "排序",
81
+ "计数排序"
82
+ ],
83
+ "name": "计数排序",
84
+ "file": "basic/counting-sort.md"
85
+ },
86
+ {
87
+ "domain": "算法基础",
88
+ "path": [
89
+ "排序",
90
+ "基数排序"
91
+ ],
92
+ "name": "基数排序",
93
+ "file": "basic/radix-sort.md"
94
+ },
95
+ {
96
+ "domain": "算法基础",
97
+ "path": [
98
+ "排序",
99
+ "快速排序"
100
+ ],
101
+ "name": "快速排序",
102
+ "file": "basic/quick-sort.md"
103
+ },
104
+ {
105
+ "domain": "算法基础",
106
+ "path": [
107
+ "排序",
108
+ "归并排序"
109
+ ],
110
+ "name": "归并排序",
111
+ "file": "basic/merge-sort.md"
112
+ },
113
+ {
114
+ "domain": "算法基础",
115
+ "path": [
116
+ "排序",
117
+ "堆排序"
118
+ ],
119
+ "name": "堆排序",
120
+ "file": "basic/heap-sort.md"
121
+ },
122
+ {
123
+ "domain": "算法基础",
124
+ "path": [
125
+ "排序",
126
+ "桶排序"
127
+ ],
128
+ "name": "桶排序",
129
+ "file": "basic/bucket-sort.md"
130
+ },
131
+ {
132
+ "domain": "算法基础",
133
+ "path": [
134
+ "排序",
135
+ "希尔排序"
136
+ ],
137
+ "name": "希尔排序",
138
+ "file": "basic/shell-sort.md"
139
+ },
140
+ {
141
+ "domain": "算法基础",
142
+ "path": [
143
+ "排序",
144
+ "锦标赛排序"
145
+ ],
146
+ "name": "锦标赛排序",
147
+ "file": "basic/tournament-sort.md"
148
+ },
149
+ {
150
+ "domain": "算法基础",
151
+ "path": [
152
+ "排序",
153
+ "tim排序"
154
+ ],
155
+ "name": "tim排序",
156
+ "file": "basic/tim-sort.md"
157
+ },
158
+ {
159
+ "domain": "算法基础",
160
+ "path": [
161
+ "排序",
162
+ "排序相关 STL"
163
+ ],
164
+ "name": "排序相关 STL",
165
+ "file": "basic/stl-sort.md"
166
+ },
167
+ {
168
+ "domain": "算法基础",
169
+ "path": [
170
+ "排序",
171
+ "排序应用"
172
+ ],
173
+ "name": "排序应用",
174
+ "file": "basic/use-of-sort.md"
175
+ },
176
+ {
177
+ "domain": "算法基础",
178
+ "path": [
179
+ "前缀和 & 差分"
180
+ ],
181
+ "name": "前缀和 & 差分",
182
+ "file": "basic/prefix-sum.md"
183
+ },
184
+ {
185
+ "domain": "算法基础",
186
+ "path": [
187
+ "二分"
188
+ ],
189
+ "name": "二分",
190
+ "file": "basic/binary.md"
191
+ },
192
+ {
193
+ "domain": "算法基础",
194
+ "path": [
195
+ "倍增"
196
+ ],
197
+ "name": "倍增",
198
+ "file": "basic/binary-lifting.md"
199
+ },
200
+ {
201
+ "domain": "算法基础",
202
+ "path": [
203
+ "构造"
204
+ ],
205
+ "name": "构造",
206
+ "file": "basic/construction.md"
207
+ },
208
+ {
209
+ "domain": "搜索",
210
+ "path": [
211
+ "DFS(搜索)"
212
+ ],
213
+ "name": "DFS(搜索)",
214
+ "file": "search/dfs.md"
215
+ },
216
+ {
217
+ "domain": "搜索",
218
+ "path": [
219
+ "BFS(搜索)"
220
+ ],
221
+ "name": "BFS(搜索)",
222
+ "file": "search/bfs.md"
223
+ },
224
+ {
225
+ "domain": "搜索",
226
+ "path": [
227
+ "双向搜索"
228
+ ],
229
+ "name": "双向搜索",
230
+ "file": "search/bidirectional.md"
231
+ },
232
+ {
233
+ "domain": "搜索",
234
+ "path": [
235
+ "启发式搜索"
236
+ ],
237
+ "name": "启发式搜索",
238
+ "file": "search/heuristic.md"
239
+ },
240
+ {
241
+ "domain": "搜索",
242
+ "path": [
243
+ "A*"
244
+ ],
245
+ "name": "A*",
246
+ "file": "search/astar.md"
247
+ },
248
+ {
249
+ "domain": "搜索",
250
+ "path": [
251
+ "迭代加深搜索"
252
+ ],
253
+ "name": "迭代加深搜索",
254
+ "file": "search/iterative.md"
255
+ },
256
+ {
257
+ "domain": "搜索",
258
+ "path": [
259
+ "IDA*"
260
+ ],
261
+ "name": "IDA*",
262
+ "file": "search/idastar.md"
263
+ },
264
+ {
265
+ "domain": "搜索",
266
+ "path": [
267
+ "回溯法"
268
+ ],
269
+ "name": "回溯法",
270
+ "file": "search/backtracking.md"
271
+ },
272
+ {
273
+ "domain": "搜索",
274
+ "path": [
275
+ "Dancing Links"
276
+ ],
277
+ "name": "Dancing Links",
278
+ "file": "search/dlx.md"
279
+ },
280
+ {
281
+ "domain": "搜索",
282
+ "path": [
283
+ "Alpha-Beta 剪枝"
284
+ ],
285
+ "name": "Alpha-Beta 剪枝",
286
+ "file": "search/alpha-beta.md"
287
+ },
288
+ {
289
+ "domain": "搜索",
290
+ "path": [
291
+ "优化"
292
+ ],
293
+ "name": "优化",
294
+ "file": "search/opt.md"
295
+ },
296
+ {
297
+ "domain": "动态规划",
298
+ "path": [
299
+ "动态规划基础"
300
+ ],
301
+ "name": "动态规划基础",
302
+ "file": "dp/basic.md"
303
+ },
304
+ {
305
+ "domain": "动态规划",
306
+ "path": [
307
+ "记忆化搜索"
308
+ ],
309
+ "name": "记忆化搜索",
310
+ "file": "dp/memo.md"
311
+ },
312
+ {
313
+ "domain": "动态规划",
314
+ "path": [
315
+ "背包 DP"
316
+ ],
317
+ "name": "背包 DP",
318
+ "file": "dp/knapsack.md"
319
+ },
320
+ {
321
+ "domain": "动态规划",
322
+ "path": [
323
+ "区间 DP"
324
+ ],
325
+ "name": "区间 DP",
326
+ "file": "dp/interval.md"
327
+ },
328
+ {
329
+ "domain": "动态规划",
330
+ "path": [
331
+ "DAG 上的 DP"
332
+ ],
333
+ "name": "DAG 上的 DP",
334
+ "file": "dp/dag.md"
335
+ },
336
+ {
337
+ "domain": "动态规划",
338
+ "path": [
339
+ "树形 DP"
340
+ ],
341
+ "name": "树形 DP",
342
+ "file": "dp/tree.md"
343
+ },
344
+ {
345
+ "domain": "动态规划",
346
+ "path": [
347
+ "状压 DP"
348
+ ],
349
+ "name": "状压 DP",
350
+ "file": "dp/state.md"
351
+ },
352
+ {
353
+ "domain": "动态规划",
354
+ "path": [
355
+ "数位 DP"
356
+ ],
357
+ "name": "数位 DP",
358
+ "file": "dp/number.md"
359
+ },
360
+ {
361
+ "domain": "动态规划",
362
+ "path": [
363
+ "插头 DP"
364
+ ],
365
+ "name": "插头 DP",
366
+ "file": "dp/plug.md"
367
+ },
368
+ {
369
+ "domain": "动态规划",
370
+ "path": [
371
+ "计数 DP"
372
+ ],
373
+ "name": "计数 DP",
374
+ "file": "dp/count.md"
375
+ },
376
+ {
377
+ "domain": "动态规划",
378
+ "path": [
379
+ "动态 DP"
380
+ ],
381
+ "name": "动态 DP",
382
+ "file": "dp/dynamic.md"
383
+ },
384
+ {
385
+ "domain": "动态规划",
386
+ "path": [
387
+ "概率 DP"
388
+ ],
389
+ "name": "概率 DP",
390
+ "file": "dp/probability.md"
391
+ },
392
+ {
393
+ "domain": "动态规划",
394
+ "path": [
395
+ "DP 优化"
396
+ ],
397
+ "name": "DP 优化",
398
+ "file": null
399
+ },
400
+ {
401
+ "domain": "动态规划",
402
+ "path": [
403
+ "DP 优化",
404
+ "单调队列/单调栈优化"
405
+ ],
406
+ "name": "单调队列/单调栈优化",
407
+ "file": "dp/opt/monotonous-queue-stack.md"
408
+ },
409
+ {
410
+ "domain": "动态规划",
411
+ "path": [
412
+ "DP 优化",
413
+ "斜率优化"
414
+ ],
415
+ "name": "斜率优化",
416
+ "file": "dp/opt/slope.md"
417
+ },
418
+ {
419
+ "domain": "动态规划",
420
+ "path": [
421
+ "DP 优化",
422
+ "四边形不等式优化"
423
+ ],
424
+ "name": "四边形不等式优化",
425
+ "file": "dp/opt/quadrangle.md"
426
+ },
427
+ {
428
+ "domain": "动态规划",
429
+ "path": [
430
+ "DP 优化",
431
+ "状态设计优化"
432
+ ],
433
+ "name": "状态设计优化",
434
+ "file": "dp/opt/state.md"
435
+ },
436
+ {
437
+ "domain": "动态规划",
438
+ "path": [
439
+ "其它 DP 方法"
440
+ ],
441
+ "name": "其它 DP 方法",
442
+ "file": "dp/misc.md"
443
+ },
444
+ {
445
+ "domain": "字符串",
446
+ "path": [
447
+ "字符串基础"
448
+ ],
449
+ "name": "字符串基础",
450
+ "file": "string/basic.md"
451
+ },
452
+ {
453
+ "domain": "字符串",
454
+ "path": [
455
+ "标准库"
456
+ ],
457
+ "name": "标准库",
458
+ "file": "string/lib-func.md"
459
+ },
460
+ {
461
+ "domain": "字符串",
462
+ "path": [
463
+ "字符串匹配"
464
+ ],
465
+ "name": "字符串匹配",
466
+ "file": "string/match.md"
467
+ },
468
+ {
469
+ "domain": "字符串",
470
+ "path": [
471
+ "字符串哈希"
472
+ ],
473
+ "name": "字符串哈希",
474
+ "file": "string/hash.md"
475
+ },
476
+ {
477
+ "domain": "字符串",
478
+ "path": [
479
+ "字典树 (Trie)"
480
+ ],
481
+ "name": "字典树 (Trie)",
482
+ "file": "string/trie.md"
483
+ },
484
+ {
485
+ "domain": "字符串",
486
+ "path": [
487
+ "前缀函数与 KMP 算法"
488
+ ],
489
+ "name": "前缀函数与 KMP 算法",
490
+ "file": "string/kmp.md"
491
+ },
492
+ {
493
+ "domain": "字符串",
494
+ "path": [
495
+ "Boyer–Moore 算法"
496
+ ],
497
+ "name": "Boyer–Moore 算法",
498
+ "file": "string/bm.md"
499
+ },
500
+ {
501
+ "domain": "字符串",
502
+ "path": [
503
+ "Z 函数(扩展 KMP)"
504
+ ],
505
+ "name": "Z 函数(扩展 KMP)",
506
+ "file": "string/z-func.md"
507
+ },
508
+ {
509
+ "domain": "字符串",
510
+ "path": [
511
+ "自动机"
512
+ ],
513
+ "name": "自动机",
514
+ "file": "string/automaton.md"
515
+ },
516
+ {
517
+ "domain": "字符串",
518
+ "path": [
519
+ "AC 自动机"
520
+ ],
521
+ "name": "AC 自动机",
522
+ "file": "string/ac-automaton.md"
523
+ },
524
+ {
525
+ "domain": "字符串",
526
+ "path": [
527
+ "后缀数组 (SA)"
528
+ ],
529
+ "name": "后缀数组 (SA)",
530
+ "file": null
531
+ },
532
+ {
533
+ "domain": "字符串",
534
+ "path": [
535
+ "后缀数组 (SA)",
536
+ "最优原地后缀排序算法"
537
+ ],
538
+ "name": "最优原地后缀排序算法",
539
+ "file": "string/sa-optimal-inplace.md"
540
+ },
541
+ {
542
+ "domain": "字符串",
543
+ "path": [
544
+ "后缀自动机 (SAM)"
545
+ ],
546
+ "name": "后缀自动机 (SAM)",
547
+ "file": "string/sam.md"
548
+ },
549
+ {
550
+ "domain": "字符串",
551
+ "path": [
552
+ "后缀平衡树"
553
+ ],
554
+ "name": "后缀平衡树",
555
+ "file": "string/suffix-bst.md"
556
+ },
557
+ {
558
+ "domain": "字符串",
559
+ "path": [
560
+ "广义后缀自动机"
561
+ ],
562
+ "name": "广义后缀自动机",
563
+ "file": "string/general-sam.md"
564
+ },
565
+ {
566
+ "domain": "字符串",
567
+ "path": [
568
+ "后缀树"
569
+ ],
570
+ "name": "后缀树",
571
+ "file": "string/suffix-tree.md"
572
+ },
573
+ {
574
+ "domain": "字符串",
575
+ "path": [
576
+ "Manacher"
577
+ ],
578
+ "name": "Manacher",
579
+ "file": "string/manacher.md"
580
+ },
581
+ {
582
+ "domain": "字符串",
583
+ "path": [
584
+ "回文树"
585
+ ],
586
+ "name": "回文树",
587
+ "file": "string/pam.md"
588
+ },
589
+ {
590
+ "domain": "字符串",
591
+ "path": [
592
+ "序列自动机"
593
+ ],
594
+ "name": "序列自动机",
595
+ "file": "string/seq-automaton.md"
596
+ },
597
+ {
598
+ "domain": "字符串",
599
+ "path": [
600
+ "最小表示法"
601
+ ],
602
+ "name": "最小表示法",
603
+ "file": "string/minimal-string.md"
604
+ },
605
+ {
606
+ "domain": "字符串",
607
+ "path": [
608
+ "Lyndon 分解"
609
+ ],
610
+ "name": "Lyndon 分解",
611
+ "file": "string/lyndon.md"
612
+ },
613
+ {
614
+ "domain": "字符串",
615
+ "path": [
616
+ "Main–Lorentz 算法"
617
+ ],
618
+ "name": "Main–Lorentz 算法",
619
+ "file": "string/main-lorentz.md"
620
+ },
621
+ {
622
+ "domain": "数学",
623
+ "path": [
624
+ "符号"
625
+ ],
626
+ "name": "符号",
627
+ "file": "math/notation.md"
628
+ },
629
+ {
630
+ "domain": "数学",
631
+ "path": [
632
+ "进位制"
633
+ ],
634
+ "name": "进位制",
635
+ "file": "math/base.md"
636
+ },
637
+ {
638
+ "domain": "数学",
639
+ "path": [
640
+ "位运算"
641
+ ],
642
+ "name": "位运算",
643
+ "file": "math/bit.md"
644
+ },
645
+ {
646
+ "domain": "数学",
647
+ "path": [
648
+ "二进制集合操作"
649
+ ],
650
+ "name": "二进制集合操作",
651
+ "file": "math/binary-set.md"
652
+ },
653
+ {
654
+ "domain": "数学",
655
+ "path": [
656
+ "平衡三进制"
657
+ ],
658
+ "name": "平衡三进制",
659
+ "file": "math/balanced-ternary.md"
660
+ },
661
+ {
662
+ "domain": "数学",
663
+ "path": [
664
+ "高精度计算"
665
+ ],
666
+ "name": "高精度计算",
667
+ "file": "math/bignum.md"
668
+ },
669
+ {
670
+ "domain": "数学",
671
+ "path": [
672
+ "快速幂"
673
+ ],
674
+ "name": "快速幂",
675
+ "file": "math/binary-exponentiation.md"
676
+ },
677
+ {
678
+ "domain": "数学",
679
+ "path": [
680
+ "置换和排列"
681
+ ],
682
+ "name": "置换和排列",
683
+ "file": "math/permutation.md"
684
+ },
685
+ {
686
+ "domain": "数学",
687
+ "path": [
688
+ "弧度制与坐标系"
689
+ ],
690
+ "name": "弧度制与坐标系",
691
+ "file": "math/coordinate.md"
692
+ },
693
+ {
694
+ "domain": "数学",
695
+ "path": [
696
+ "复数"
697
+ ],
698
+ "name": "复数",
699
+ "file": "math/complex.md"
700
+ },
701
+ {
702
+ "domain": "数学",
703
+ "path": [
704
+ "数论"
705
+ ],
706
+ "name": "数论",
707
+ "file": null
708
+ },
709
+ {
710
+ "domain": "数学",
711
+ "path": [
712
+ "数论",
713
+ "数论基础"
714
+ ],
715
+ "name": "数论基础",
716
+ "file": "math/number-theory/basic.md"
717
+ },
718
+ {
719
+ "domain": "数学",
720
+ "path": [
721
+ "数论",
722
+ "素数"
723
+ ],
724
+ "name": "素数",
725
+ "file": "math/number-theory/prime.md"
726
+ },
727
+ {
728
+ "domain": "数学",
729
+ "path": [
730
+ "数论",
731
+ "最大公约数"
732
+ ],
733
+ "name": "最大公约数",
734
+ "file": "math/number-theory/gcd.md"
735
+ },
736
+ {
737
+ "domain": "数学",
738
+ "path": [
739
+ "数论",
740
+ "数论分块"
741
+ ],
742
+ "name": "数论分块",
743
+ "file": "math/number-theory/sqrt-decomposition.md"
744
+ },
745
+ {
746
+ "domain": "数学",
747
+ "path": [
748
+ "数论",
749
+ "欧拉函数"
750
+ ],
751
+ "name": "欧拉函数",
752
+ "file": "math/number-theory/euler-totient.md"
753
+ },
754
+ {
755
+ "domain": "数学",
756
+ "path": [
757
+ "数论",
758
+ "筛法"
759
+ ],
760
+ "name": "筛法",
761
+ "file": "math/number-theory/sieve.md"
762
+ },
763
+ {
764
+ "domain": "数学",
765
+ "path": [
766
+ "数论",
767
+ "Meissel–Lehmer 算法"
768
+ ],
769
+ "name": "Meissel–Lehmer 算法",
770
+ "file": "math/number-theory/meissel-lehmer.md"
771
+ },
772
+ {
773
+ "domain": "数学",
774
+ "path": [
775
+ "数论",
776
+ "分解质因数"
777
+ ],
778
+ "name": "分解质因数",
779
+ "file": "math/number-theory/pollard-rho.md"
780
+ },
781
+ {
782
+ "domain": "数学",
783
+ "path": [
784
+ "数论",
785
+ "裴蜀定理"
786
+ ],
787
+ "name": "裴蜀定理",
788
+ "file": "math/number-theory/bezouts.md"
789
+ },
790
+ {
791
+ "domain": "数学",
792
+ "path": [
793
+ "数论",
794
+ "类欧几里德算法"
795
+ ],
796
+ "name": "类欧几里德算法",
797
+ "file": "math/number-theory/euclidean.md"
798
+ },
799
+ {
800
+ "domain": "数学",
801
+ "path": [
802
+ "数论",
803
+ "欧拉定理 & 费马小定理"
804
+ ],
805
+ "name": "欧拉定理 & 费马小定理",
806
+ "file": "math/number-theory/fermat.md"
807
+ },
808
+ {
809
+ "domain": "数学",
810
+ "path": [
811
+ "数论",
812
+ "乘法逆元"
813
+ ],
814
+ "name": "乘法逆元",
815
+ "file": "math/number-theory/inverse.md"
816
+ },
817
+ {
818
+ "domain": "数学",
819
+ "path": [
820
+ "数论",
821
+ "线性同余方程"
822
+ ],
823
+ "name": "线性同余方程",
824
+ "file": "math/number-theory/linear-equation.md"
825
+ },
826
+ {
827
+ "domain": "数学",
828
+ "path": [
829
+ "数论",
830
+ "中国剩余定理"
831
+ ],
832
+ "name": "中国剩余定理",
833
+ "file": "math/number-theory/crt.md"
834
+ },
835
+ {
836
+ "domain": "数学",
837
+ "path": [
838
+ "数论",
839
+ "升幂引理"
840
+ ],
841
+ "name": "升幂引理",
842
+ "file": "math/number-theory/lift-the-exponent.md"
843
+ },
844
+ {
845
+ "domain": "数学",
846
+ "path": [
847
+ "数论",
848
+ "威尔逊定理"
849
+ ],
850
+ "name": "威尔逊定理",
851
+ "file": "math/number-theory/wilson.md"
852
+ },
853
+ {
854
+ "domain": "数学",
855
+ "path": [
856
+ "数论",
857
+ "卢卡斯定理"
858
+ ],
859
+ "name": "卢卡斯定理",
860
+ "file": "math/number-theory/lucas.md"
861
+ },
862
+ {
863
+ "domain": "数学",
864
+ "path": [
865
+ "数论",
866
+ "同余方程"
867
+ ],
868
+ "name": "同余方程",
869
+ "file": "math/number-theory/congruence-equation.md"
870
+ },
871
+ {
872
+ "domain": "数学",
873
+ "path": [
874
+ "数论",
875
+ "二次剩余"
876
+ ],
877
+ "name": "二次剩余",
878
+ "file": "math/number-theory/quad-residue.md"
879
+ },
880
+ {
881
+ "domain": "数学",
882
+ "path": [
883
+ "数论",
884
+ "原根"
885
+ ],
886
+ "name": "原根",
887
+ "file": "math/number-theory/primitive-root.md"
888
+ },
889
+ {
890
+ "domain": "数学",
891
+ "path": [
892
+ "数论",
893
+ "离散对数"
894
+ ],
895
+ "name": "离散对数",
896
+ "file": "math/number-theory/discrete-logarithm.md"
897
+ },
898
+ {
899
+ "domain": "数学",
900
+ "path": [
901
+ "数论",
902
+ "剩余"
903
+ ],
904
+ "name": "剩余",
905
+ "file": "math/number-theory/residue.md"
906
+ },
907
+ {
908
+ "domain": "数学",
909
+ "path": [
910
+ "数论",
911
+ "莫比乌斯反演"
912
+ ],
913
+ "name": "莫比乌斯反演",
914
+ "file": "math/number-theory/mobius.md"
915
+ },
916
+ {
917
+ "domain": "数学",
918
+ "path": [
919
+ "数论",
920
+ "杜教筛"
921
+ ],
922
+ "name": "杜教筛",
923
+ "file": "math/number-theory/du.md"
924
+ },
925
+ {
926
+ "domain": "数学",
927
+ "path": [
928
+ "数论",
929
+ "Powerful Number 筛"
930
+ ],
931
+ "name": "Powerful Number 筛",
932
+ "file": "math/number-theory/powerful-number.md"
933
+ },
934
+ {
935
+ "domain": "数学",
936
+ "path": [
937
+ "数论",
938
+ "Min_25 筛"
939
+ ],
940
+ "name": "Min_25 筛",
941
+ "file": "math/number-theory/min-25.md"
942
+ },
943
+ {
944
+ "domain": "数学",
945
+ "path": [
946
+ "数论",
947
+ "洲阁筛"
948
+ ],
949
+ "name": "洲阁筛",
950
+ "file": "math/number-theory/zhou.md"
951
+ },
952
+ {
953
+ "domain": "数学",
954
+ "path": [
955
+ "数论",
956
+ "连分数"
957
+ ],
958
+ "name": "连分数",
959
+ "file": "math/number-theory/continued-fraction.md"
960
+ },
961
+ {
962
+ "domain": "数学",
963
+ "path": [
964
+ "数论",
965
+ "Stern–Brocot 树与 Farey 序列"
966
+ ],
967
+ "name": "Stern–Brocot 树与 Farey 序列",
968
+ "file": "math/number-theory/stern-brocot.md"
969
+ },
970
+ {
971
+ "domain": "数学",
972
+ "path": [
973
+ "数论",
974
+ "二次域"
975
+ ],
976
+ "name": "二次域",
977
+ "file": "math/number-theory/quadratic.md"
978
+ },
979
+ {
980
+ "domain": "数学",
981
+ "path": [
982
+ "数论",
983
+ "循环连分数"
984
+ ],
985
+ "name": "循环连分数",
986
+ "file": "math/number-theory/periodic-continued-fraction.md"
987
+ },
988
+ {
989
+ "domain": "数学",
990
+ "path": [
991
+ "数论",
992
+ "Pell 方程"
993
+ ],
994
+ "name": "Pell 方程",
995
+ "file": "math/number-theory/pell-equation.md"
996
+ },
997
+ {
998
+ "domain": "数学",
999
+ "path": [
1000
+ "多项式与生成函数"
1001
+ ],
1002
+ "name": "多项式与生成函数",
1003
+ "file": null
1004
+ },
1005
+ {
1006
+ "domain": "数学",
1007
+ "path": [
1008
+ "多项式与生成函数",
1009
+ "代数基本定理"
1010
+ ],
1011
+ "name": "代数基本定理",
1012
+ "file": "math/poly/fundamental.md"
1013
+ },
1014
+ {
1015
+ "domain": "数学",
1016
+ "path": [
1017
+ "多项式与生成函数",
1018
+ "快速傅里叶变换"
1019
+ ],
1020
+ "name": "快速傅里叶变换",
1021
+ "file": "math/poly/fft.md"
1022
+ },
1023
+ {
1024
+ "domain": "数学",
1025
+ "path": [
1026
+ "多项式与生成函数",
1027
+ "快速数论变换"
1028
+ ],
1029
+ "name": "快速数论变换",
1030
+ "file": "math/poly/ntt.md"
1031
+ },
1032
+ {
1033
+ "domain": "数学",
1034
+ "path": [
1035
+ "多项式与生成函数",
1036
+ "快速沃尔什变换"
1037
+ ],
1038
+ "name": "快速沃尔什变换",
1039
+ "file": "math/poly/fwt.md"
1040
+ },
1041
+ {
1042
+ "domain": "数学",
1043
+ "path": [
1044
+ "多项式与生成函数",
1045
+ "Chirp Z 变换"
1046
+ ],
1047
+ "name": "Chirp Z 变换",
1048
+ "file": "math/poly/czt.md"
1049
+ },
1050
+ {
1051
+ "domain": "数学",
1052
+ "path": [
1053
+ "多项式与生成函数",
1054
+ "多项式牛顿迭代"
1055
+ ],
1056
+ "name": "多项式牛顿迭代",
1057
+ "file": "math/poly/newton.md"
1058
+ },
1059
+ {
1060
+ "domain": "数学",
1061
+ "path": [
1062
+ "多项式与生成函数",
1063
+ "多项式多点求值|快速插值"
1064
+ ],
1065
+ "name": "多项式多点求值|快速插值",
1066
+ "file": "math/poly/multipoint-eval-interpolation.md"
1067
+ },
1068
+ {
1069
+ "domain": "数学",
1070
+ "path": [
1071
+ "多项式与生成函数",
1072
+ "多项式初等函数"
1073
+ ],
1074
+ "name": "多项式初等函数",
1075
+ "file": "math/poly/elementary-func.md"
1076
+ },
1077
+ {
1078
+ "domain": "数学",
1079
+ "path": [
1080
+ "多项式与生成函数",
1081
+ "常系数齐次线性递推"
1082
+ ],
1083
+ "name": "常系数齐次线性递推",
1084
+ "file": "math/poly/linear-recurrence.md"
1085
+ },
1086
+ {
1087
+ "domain": "数学",
1088
+ "path": [
1089
+ "多项式与生成函数",
1090
+ "多项式平移|连续点值平移"
1091
+ ],
1092
+ "name": "多项式平移|连续点值平移",
1093
+ "file": "math/poly/shift.md"
1094
+ },
1095
+ {
1096
+ "domain": "数学",
1097
+ "path": [
1098
+ "多项式与生成函数",
1099
+ "符号化方法"
1100
+ ],
1101
+ "name": "符号化方法",
1102
+ "file": "math/poly/symbolic-method.md"
1103
+ },
1104
+ {
1105
+ "domain": "数学",
1106
+ "path": [
1107
+ "多项式与生成函数",
1108
+ "普通生成函数"
1109
+ ],
1110
+ "name": "普通生成函数",
1111
+ "file": "math/poly/ogf.md"
1112
+ },
1113
+ {
1114
+ "domain": "数学",
1115
+ "path": [
1116
+ "多项式与生成函数",
1117
+ "指数生成函数"
1118
+ ],
1119
+ "name": "指数生成函数",
1120
+ "file": "math/poly/egf.md"
1121
+ },
1122
+ {
1123
+ "domain": "数学",
1124
+ "path": [
1125
+ "多项式与生成函数",
1126
+ "狄利克雷生成函数"
1127
+ ],
1128
+ "name": "狄利克雷生成函数",
1129
+ "file": "math/poly/dgf.md"
1130
+ },
1131
+ {
1132
+ "domain": "数学",
1133
+ "path": [
1134
+ "组合数学"
1135
+ ],
1136
+ "name": "组合数学",
1137
+ "file": null
1138
+ },
1139
+ {
1140
+ "domain": "数学",
1141
+ "path": [
1142
+ "组合数学",
1143
+ "排列组合"
1144
+ ],
1145
+ "name": "排列组合",
1146
+ "file": "math/combinatorics/combination.md"
1147
+ },
1148
+ {
1149
+ "domain": "数学",
1150
+ "path": [
1151
+ "组合数学",
1152
+ "抽屉原理"
1153
+ ],
1154
+ "name": "抽屉原理",
1155
+ "file": "math/combinatorics/drawer-principle.md"
1156
+ },
1157
+ {
1158
+ "domain": "数学",
1159
+ "path": [
1160
+ "组合数学",
1161
+ "容斥原理"
1162
+ ],
1163
+ "name": "容斥原理",
1164
+ "file": "math/combinatorics/inclusion-exclusion-principle.md"
1165
+ },
1166
+ {
1167
+ "domain": "数学",
1168
+ "path": [
1169
+ "组合数学",
1170
+ "康托展开"
1171
+ ],
1172
+ "name": "康托展开",
1173
+ "file": "math/combinatorics/cantor.md"
1174
+ },
1175
+ {
1176
+ "domain": "数学",
1177
+ "path": [
1178
+ "组合数学",
1179
+ "斐波那契数列"
1180
+ ],
1181
+ "name": "斐波那契数列",
1182
+ "file": "math/combinatorics/fibonacci.md"
1183
+ },
1184
+ {
1185
+ "domain": "数学",
1186
+ "path": [
1187
+ "组合数学",
1188
+ "错位排列"
1189
+ ],
1190
+ "name": "错位排列",
1191
+ "file": "math/combinatorics/derangement.md"
1192
+ },
1193
+ {
1194
+ "domain": "数学",
1195
+ "path": [
1196
+ "组合数学",
1197
+ "卡特兰数"
1198
+ ],
1199
+ "name": "卡特兰数",
1200
+ "file": "math/combinatorics/catalan.md"
1201
+ },
1202
+ {
1203
+ "domain": "数学",
1204
+ "path": [
1205
+ "组合数学",
1206
+ "斯特林数"
1207
+ ],
1208
+ "name": "斯特林数",
1209
+ "file": "math/combinatorics/stirling.md"
1210
+ },
1211
+ {
1212
+ "domain": "数学",
1213
+ "path": [
1214
+ "组合数学",
1215
+ "贝尔数"
1216
+ ],
1217
+ "name": "贝尔数",
1218
+ "file": "math/combinatorics/bell.md"
1219
+ },
1220
+ {
1221
+ "domain": "数学",
1222
+ "path": [
1223
+ "组合数学",
1224
+ "伯努利数"
1225
+ ],
1226
+ "name": "伯努利数",
1227
+ "file": "math/combinatorics/bernoulli.md"
1228
+ },
1229
+ {
1230
+ "domain": "数学",
1231
+ "path": [
1232
+ "组合数学",
1233
+ "Entringer Number"
1234
+ ],
1235
+ "name": "Entringer Number",
1236
+ "file": "math/combinatorics/entringer.md"
1237
+ },
1238
+ {
1239
+ "domain": "数学",
1240
+ "path": [
1241
+ "组合数学",
1242
+ "Eulerian Number"
1243
+ ],
1244
+ "name": "Eulerian Number",
1245
+ "file": "math/combinatorics/eulerian.md"
1246
+ },
1247
+ {
1248
+ "domain": "数学",
1249
+ "path": [
1250
+ "组合数学",
1251
+ "分拆数"
1252
+ ],
1253
+ "name": "分拆数",
1254
+ "file": "math/combinatorics/partition.md"
1255
+ },
1256
+ {
1257
+ "domain": "数学",
1258
+ "path": [
1259
+ "组合数学",
1260
+ "范德蒙德卷积"
1261
+ ],
1262
+ "name": "范德蒙德卷积",
1263
+ "file": "math/combinatorics/vandermonde-convolution.md"
1264
+ },
1265
+ {
1266
+ "domain": "数学",
1267
+ "path": [
1268
+ "组合数学",
1269
+ "图论计数"
1270
+ ],
1271
+ "name": "图论计数",
1272
+ "file": "math/combinatorics/graph-enumeration.md"
1273
+ },
1274
+ {
1275
+ "domain": "数学",
1276
+ "path": [
1277
+ "线性代数"
1278
+ ],
1279
+ "name": "线性代数",
1280
+ "file": null
1281
+ },
1282
+ {
1283
+ "domain": "数学",
1284
+ "path": [
1285
+ "线性代数",
1286
+ "向量"
1287
+ ],
1288
+ "name": "向量",
1289
+ "file": "math/linear-algebra/vector.md"
1290
+ },
1291
+ {
1292
+ "domain": "数学",
1293
+ "path": [
1294
+ "线性代数",
1295
+ "内积和外积"
1296
+ ],
1297
+ "name": "内积和外积",
1298
+ "file": "math/linear-algebra/product.md"
1299
+ },
1300
+ {
1301
+ "domain": "数学",
1302
+ "path": [
1303
+ "线性代数",
1304
+ "矩阵"
1305
+ ],
1306
+ "name": "矩阵",
1307
+ "file": "math/linear-algebra/matrix.md"
1308
+ },
1309
+ {
1310
+ "domain": "数学",
1311
+ "path": [
1312
+ "线性代数",
1313
+ "初等变换"
1314
+ ],
1315
+ "name": "初等变换",
1316
+ "file": "math/linear-algebra/elementary-operations.md"
1317
+ },
1318
+ {
1319
+ "domain": "数学",
1320
+ "path": [
1321
+ "线性代数",
1322
+ "行列式"
1323
+ ],
1324
+ "name": "行列式",
1325
+ "file": "math/linear-algebra/determinant.md"
1326
+ },
1327
+ {
1328
+ "domain": "数学",
1329
+ "path": [
1330
+ "线性代数",
1331
+ "线性空间"
1332
+ ],
1333
+ "name": "线性空间",
1334
+ "file": "math/linear-algebra/vector-space.md"
1335
+ },
1336
+ {
1337
+ "domain": "数学",
1338
+ "path": [
1339
+ "线性代数",
1340
+ "线性基"
1341
+ ],
1342
+ "name": "线性基",
1343
+ "file": "math/linear-algebra/basis.md"
1344
+ },
1345
+ {
1346
+ "domain": "数学",
1347
+ "path": [
1348
+ "线性代数",
1349
+ "线性映射"
1350
+ ],
1351
+ "name": "线性映射",
1352
+ "file": "math/linear-algebra/linear-mapping.md"
1353
+ },
1354
+ {
1355
+ "domain": "数学",
1356
+ "path": [
1357
+ "线性代数",
1358
+ "特征多项式"
1359
+ ],
1360
+ "name": "特征多项式",
1361
+ "file": "math/linear-algebra/char-poly.md"
1362
+ },
1363
+ {
1364
+ "domain": "数学",
1365
+ "path": [
1366
+ "线性代数",
1367
+ "对角化"
1368
+ ],
1369
+ "name": "对角化",
1370
+ "file": "math/linear-algebra/diagonalization.md"
1371
+ },
1372
+ {
1373
+ "domain": "数学",
1374
+ "path": [
1375
+ "线性代数",
1376
+ "Jordan标准型"
1377
+ ],
1378
+ "name": "Jordan标准型",
1379
+ "file": "math/linear-algebra/jordan.md"
1380
+ },
1381
+ {
1382
+ "domain": "数学",
1383
+ "path": [
1384
+ "线性规划"
1385
+ ],
1386
+ "name": "线性规划",
1387
+ "file": null
1388
+ },
1389
+ {
1390
+ "domain": "数学",
1391
+ "path": [
1392
+ "线性规划",
1393
+ "单纯形算法"
1394
+ ],
1395
+ "name": "单纯形算法",
1396
+ "file": "math/simplex.md"
1397
+ },
1398
+ {
1399
+ "domain": "数学",
1400
+ "path": [
1401
+ "群论"
1402
+ ],
1403
+ "name": "群论",
1404
+ "file": null
1405
+ },
1406
+ {
1407
+ "domain": "数学",
1408
+ "path": [
1409
+ "群论",
1410
+ "置换群"
1411
+ ],
1412
+ "name": "置换群",
1413
+ "file": "math/permutation-group.md"
1414
+ },
1415
+ {
1416
+ "domain": "数学",
1417
+ "path": [
1418
+ "概率论"
1419
+ ],
1420
+ "name": "概率论",
1421
+ "file": null
1422
+ },
1423
+ {
1424
+ "domain": "数学",
1425
+ "path": [
1426
+ "概率论",
1427
+ "基本概念"
1428
+ ],
1429
+ "name": "基本概念",
1430
+ "file": "math/probability/basic-conception.md"
1431
+ },
1432
+ {
1433
+ "domain": "数学",
1434
+ "path": [
1435
+ "概率论",
1436
+ "条件概率与独立性"
1437
+ ],
1438
+ "name": "条件概率与独立性",
1439
+ "file": "math/probability/conditional-probability.md"
1440
+ },
1441
+ {
1442
+ "domain": "数学",
1443
+ "path": [
1444
+ "概率论",
1445
+ "随机变量"
1446
+ ],
1447
+ "name": "随机变量",
1448
+ "file": "math/probability/random-variable.md"
1449
+ },
1450
+ {
1451
+ "domain": "数学",
1452
+ "path": [
1453
+ "概率论",
1454
+ "随机变量的数字特征"
1455
+ ],
1456
+ "name": "随机变量的数字特征",
1457
+ "file": "math/probability/exp-var.md"
1458
+ },
1459
+ {
1460
+ "domain": "数学",
1461
+ "path": [
1462
+ "概率论",
1463
+ "概率不等式"
1464
+ ],
1465
+ "name": "概率不等式",
1466
+ "file": "math/probability/concentration-inequality.md"
1467
+ },
1468
+ {
1469
+ "domain": "数学",
1470
+ "path": [
1471
+ "博弈论"
1472
+ ],
1473
+ "name": "博弈论",
1474
+ "file": null
1475
+ },
1476
+ {
1477
+ "domain": "数学",
1478
+ "path": [
1479
+ "博弈论",
1480
+ "公平组合游戏"
1481
+ ],
1482
+ "name": "公平组合游戏",
1483
+ "file": "math/game-theory/impartial-game.md"
1484
+ },
1485
+ {
1486
+ "domain": "数学",
1487
+ "path": [
1488
+ "博弈论",
1489
+ "非公平组合游戏"
1490
+ ],
1491
+ "name": "非公平组合游戏",
1492
+ "file": "math/game-theory/partizan-game.md"
1493
+ },
1494
+ {
1495
+ "domain": "数学",
1496
+ "path": [
1497
+ "博弈论",
1498
+ "反常游戏"
1499
+ ],
1500
+ "name": "反常游戏",
1501
+ "file": "math/game-theory/misere-game.md"
1502
+ },
1503
+ {
1504
+ "domain": "数学",
1505
+ "path": [
1506
+ "数值算法"
1507
+ ],
1508
+ "name": "数值算法",
1509
+ "file": null
1510
+ },
1511
+ {
1512
+ "domain": "数学",
1513
+ "path": [
1514
+ "数值算法",
1515
+ "拉格朗日插值"
1516
+ ],
1517
+ "name": "拉格朗日插值",
1518
+ "file": "math/numerical/lagrange.md"
1519
+ },
1520
+ {
1521
+ "domain": "数学",
1522
+ "path": [
1523
+ "数值算法",
1524
+ "数值积分"
1525
+ ],
1526
+ "name": "数值积分",
1527
+ "file": "math/numerical/integral.md"
1528
+ },
1529
+ {
1530
+ "domain": "数学",
1531
+ "path": [
1532
+ "数值算法",
1533
+ "高斯消元"
1534
+ ],
1535
+ "name": "高斯消元",
1536
+ "file": "math/numerical/gauss.md"
1537
+ },
1538
+ {
1539
+ "domain": "数学",
1540
+ "path": [
1541
+ "数值算法",
1542
+ "牛顿迭代法"
1543
+ ],
1544
+ "name": "牛顿迭代法",
1545
+ "file": "math/numerical/newton.md"
1546
+ },
1547
+ {
1548
+ "domain": "数学",
1549
+ "path": [
1550
+ "傅里叶-莫茨金消元法"
1551
+ ],
1552
+ "name": "傅里叶-莫茨金消元法",
1553
+ "file": "math/fourier-motzkin-elimination.md"
1554
+ },
1555
+ {
1556
+ "domain": "数学",
1557
+ "path": [
1558
+ "序理论"
1559
+ ],
1560
+ "name": "序理论",
1561
+ "file": "math/order-theory.md"
1562
+ },
1563
+ {
1564
+ "domain": "数学",
1565
+ "path": [
1566
+ "杨氏矩阵"
1567
+ ],
1568
+ "name": "杨氏矩阵",
1569
+ "file": "math/young-tableau.md"
1570
+ },
1571
+ {
1572
+ "domain": "数学",
1573
+ "path": [
1574
+ "Schreier–Sims 算法"
1575
+ ],
1576
+ "name": "Schreier–Sims 算法",
1577
+ "file": "math/schreier-sims.md"
1578
+ },
1579
+ {
1580
+ "domain": "数学",
1581
+ "path": [
1582
+ "Berlekamp–Massey 算法"
1583
+ ],
1584
+ "name": "Berlekamp–Massey 算法",
1585
+ "file": "math/berlekamp-massey.md"
1586
+ },
1587
+ {
1588
+ "domain": "数据结构",
1589
+ "path": [
1590
+ "栈"
1591
+ ],
1592
+ "name": "栈",
1593
+ "file": "ds/stack.md"
1594
+ },
1595
+ {
1596
+ "domain": "数据结构",
1597
+ "path": [
1598
+ "队列"
1599
+ ],
1600
+ "name": "队列",
1601
+ "file": "ds/queue.md"
1602
+ },
1603
+ {
1604
+ "domain": "数据结构",
1605
+ "path": [
1606
+ "链表"
1607
+ ],
1608
+ "name": "链表",
1609
+ "file": "ds/linked-list.md"
1610
+ },
1611
+ {
1612
+ "domain": "数据结构",
1613
+ "path": [
1614
+ "哈希表"
1615
+ ],
1616
+ "name": "哈希表",
1617
+ "file": "ds/hash.md"
1618
+ },
1619
+ {
1620
+ "domain": "数据结构",
1621
+ "path": [
1622
+ "并查集"
1623
+ ],
1624
+ "name": "并查集",
1625
+ "file": null
1626
+ },
1627
+ {
1628
+ "domain": "数据结构",
1629
+ "path": [
1630
+ "并查集",
1631
+ "并查集"
1632
+ ],
1633
+ "name": "并查集",
1634
+ "file": "ds/dsu.md"
1635
+ },
1636
+ {
1637
+ "domain": "数据结构",
1638
+ "path": [
1639
+ "并查集",
1640
+ "并查集复杂度"
1641
+ ],
1642
+ "name": "并查集复杂度",
1643
+ "file": "ds/dsu-complexity.md"
1644
+ },
1645
+ {
1646
+ "domain": "数据结构",
1647
+ "path": [
1648
+ "堆"
1649
+ ],
1650
+ "name": "堆",
1651
+ "file": null
1652
+ },
1653
+ {
1654
+ "domain": "数据结构",
1655
+ "path": [
1656
+ "堆",
1657
+ "二叉堆"
1658
+ ],
1659
+ "name": "二叉堆",
1660
+ "file": "ds/binary-heap.md"
1661
+ },
1662
+ {
1663
+ "domain": "数据结构",
1664
+ "path": [
1665
+ "堆",
1666
+ "配对堆"
1667
+ ],
1668
+ "name": "配对堆",
1669
+ "file": "ds/pairing-heap.md"
1670
+ },
1671
+ {
1672
+ "domain": "数据结构",
1673
+ "path": [
1674
+ "堆",
1675
+ "左偏树"
1676
+ ],
1677
+ "name": "左偏树",
1678
+ "file": "ds/leftist-tree.md"
1679
+ },
1680
+ {
1681
+ "domain": "数据结构",
1682
+ "path": [
1683
+ "块状数据结构"
1684
+ ],
1685
+ "name": "块状数据结构",
1686
+ "file": null
1687
+ },
1688
+ {
1689
+ "domain": "数据结构",
1690
+ "path": [
1691
+ "块状数据结构",
1692
+ "分块思想"
1693
+ ],
1694
+ "name": "分块思想",
1695
+ "file": "ds/decompose.md"
1696
+ },
1697
+ {
1698
+ "domain": "数据结构",
1699
+ "path": [
1700
+ "块状数据结构",
1701
+ "块状数组"
1702
+ ],
1703
+ "name": "块状数组",
1704
+ "file": "ds/block-array.md"
1705
+ },
1706
+ {
1707
+ "domain": "数据结构",
1708
+ "path": [
1709
+ "块状数据结构",
1710
+ "块状链表"
1711
+ ],
1712
+ "name": "块状链表",
1713
+ "file": "ds/block-list.md"
1714
+ },
1715
+ {
1716
+ "domain": "数据结构",
1717
+ "path": [
1718
+ "块状数据结构",
1719
+ "树分块"
1720
+ ],
1721
+ "name": "树分块",
1722
+ "file": "ds/tree-decompose.md"
1723
+ },
1724
+ {
1725
+ "domain": "数据结构",
1726
+ "path": [
1727
+ "块状数据结构",
1728
+ "Sqrt Tree"
1729
+ ],
1730
+ "name": "Sqrt Tree",
1731
+ "file": "ds/sqrt-tree.md"
1732
+ },
1733
+ {
1734
+ "domain": "数据结构",
1735
+ "path": [
1736
+ "单调栈"
1737
+ ],
1738
+ "name": "单调栈",
1739
+ "file": "ds/monotonous-stack.md"
1740
+ },
1741
+ {
1742
+ "domain": "数据结构",
1743
+ "path": [
1744
+ "单调队列"
1745
+ ],
1746
+ "name": "单调队列",
1747
+ "file": "ds/monotonous-queue.md"
1748
+ },
1749
+ {
1750
+ "domain": "数据结构",
1751
+ "path": [
1752
+ "ST 表"
1753
+ ],
1754
+ "name": "ST 表",
1755
+ "file": "ds/sparse-table.md"
1756
+ },
1757
+ {
1758
+ "domain": "数据结构",
1759
+ "path": [
1760
+ "树状数组"
1761
+ ],
1762
+ "name": "树状数组",
1763
+ "file": "ds/fenwick.md"
1764
+ },
1765
+ {
1766
+ "domain": "数据结构",
1767
+ "path": [
1768
+ "线段树"
1769
+ ],
1770
+ "name": "线段树",
1771
+ "file": "ds/seg.md"
1772
+ },
1773
+ {
1774
+ "domain": "数据结构",
1775
+ "path": [
1776
+ "李超线段树"
1777
+ ],
1778
+ "name": "李超线段树",
1779
+ "file": "ds/li-chao-tree.md"
1780
+ },
1781
+ {
1782
+ "domain": "数据结构",
1783
+ "path": [
1784
+ "区间最值操作 & 区间历史最值"
1785
+ ],
1786
+ "name": "区间最值操作 & 区间历史最值",
1787
+ "file": "ds/seg-beats.md"
1788
+ },
1789
+ {
1790
+ "domain": "数据结构",
1791
+ "path": [
1792
+ "划分树"
1793
+ ],
1794
+ "name": "划分树",
1795
+ "file": "ds/dividing.md"
1796
+ },
1797
+ {
1798
+ "domain": "数据结构",
1799
+ "path": [
1800
+ "二叉搜索树 & 平衡树"
1801
+ ],
1802
+ "name": "二叉搜索树 & 平衡树",
1803
+ "file": null
1804
+ },
1805
+ {
1806
+ "domain": "数据结构",
1807
+ "path": [
1808
+ "二叉搜索树 & 平衡树",
1809
+ "二叉搜索树 & 平衡树"
1810
+ ],
1811
+ "name": "二叉搜索树 & 平衡树",
1812
+ "file": "ds/bst.md"
1813
+ },
1814
+ {
1815
+ "domain": "数据结构",
1816
+ "path": [
1817
+ "二叉搜索树 & 平衡树",
1818
+ "Treap"
1819
+ ],
1820
+ "name": "Treap",
1821
+ "file": "ds/treap.md"
1822
+ },
1823
+ {
1824
+ "domain": "数据结构",
1825
+ "path": [
1826
+ "二叉搜索树 & 平衡树",
1827
+ "Splay 树"
1828
+ ],
1829
+ "name": "Splay 树",
1830
+ "file": "ds/splay.md"
1831
+ },
1832
+ {
1833
+ "domain": "数据结构",
1834
+ "path": [
1835
+ "二叉搜索树 & 平衡树",
1836
+ "WBLT"
1837
+ ],
1838
+ "name": "WBLT",
1839
+ "file": "ds/wblt.md"
1840
+ },
1841
+ {
1842
+ "domain": "数据结构",
1843
+ "path": [
1844
+ "二叉搜索树 & 平衡树",
1845
+ "Size Balanced Tree"
1846
+ ],
1847
+ "name": "Size Balanced Tree",
1848
+ "file": "ds/sbt.md"
1849
+ },
1850
+ {
1851
+ "domain": "数据结构",
1852
+ "path": [
1853
+ "二叉搜索树 & 平衡树",
1854
+ "AVL 树"
1855
+ ],
1856
+ "name": "AVL 树",
1857
+ "file": "ds/avl.md"
1858
+ },
1859
+ {
1860
+ "domain": "数据结构",
1861
+ "path": [
1862
+ "二叉搜索树 & 平衡树",
1863
+ "B 树"
1864
+ ],
1865
+ "name": "B 树",
1866
+ "file": "ds/b-tree.md"
1867
+ },
1868
+ {
1869
+ "domain": "数据结构",
1870
+ "path": [
1871
+ "二叉搜索树 & 平衡树",
1872
+ "B+ 树"
1873
+ ],
1874
+ "name": "B+ 树",
1875
+ "file": "ds/bplus-tree.md"
1876
+ },
1877
+ {
1878
+ "domain": "数据结构",
1879
+ "path": [
1880
+ "二叉搜索树 & 平衡树",
1881
+ "替罪羊树"
1882
+ ],
1883
+ "name": "替罪羊树",
1884
+ "file": "ds/sgt.md"
1885
+ },
1886
+ {
1887
+ "domain": "数据结构",
1888
+ "path": [
1889
+ "二叉搜索树 & 平衡树",
1890
+ "Leafy Tree"
1891
+ ],
1892
+ "name": "Leafy Tree",
1893
+ "file": "ds/leafy-tree.md"
1894
+ },
1895
+ {
1896
+ "domain": "数据结构",
1897
+ "path": [
1898
+ "二叉搜索树 & 平衡树",
1899
+ "笛卡尔树"
1900
+ ],
1901
+ "name": "笛卡尔树",
1902
+ "file": "ds/cartesian-tree.md"
1903
+ },
1904
+ {
1905
+ "domain": "数据结构",
1906
+ "path": [
1907
+ "二叉搜索树 & 平衡树",
1908
+ "红黑树"
1909
+ ],
1910
+ "name": "红黑树",
1911
+ "file": "ds/rbtree.md"
1912
+ },
1913
+ {
1914
+ "domain": "数据结构",
1915
+ "path": [
1916
+ "二叉搜索树 & 平衡树",
1917
+ "左偏红黑树"
1918
+ ],
1919
+ "name": "左偏红黑树",
1920
+ "file": "ds/llrbt.md"
1921
+ },
1922
+ {
1923
+ "domain": "数据结构",
1924
+ "path": [
1925
+ "二叉搜索树 & 平衡树",
1926
+ "AA 树"
1927
+ ],
1928
+ "name": "AA 树",
1929
+ "file": "ds/aa-tree.md"
1930
+ },
1931
+ {
1932
+ "domain": "数据结构",
1933
+ "path": [
1934
+ "二叉搜索树 & 平衡树",
1935
+ "2-3 树"
1936
+ ],
1937
+ "name": "2-3 树",
1938
+ "file": "ds/2-3-tree.md"
1939
+ },
1940
+ {
1941
+ "domain": "数据结构",
1942
+ "path": [
1943
+ "跳表"
1944
+ ],
1945
+ "name": "跳表",
1946
+ "file": "ds/skiplist.md"
1947
+ },
1948
+ {
1949
+ "domain": "数据结构",
1950
+ "path": [
1951
+ "可持久化数据结构"
1952
+ ],
1953
+ "name": "可持久化数据结构",
1954
+ "file": null
1955
+ },
1956
+ {
1957
+ "domain": "数据结构",
1958
+ "path": [
1959
+ "可持久化数据结构",
1960
+ "可持久化线段树"
1961
+ ],
1962
+ "name": "可持久化线段树",
1963
+ "file": "ds/persistent-seg.md"
1964
+ },
1965
+ {
1966
+ "domain": "数据结构",
1967
+ "path": [
1968
+ "可持久化数据结构",
1969
+ "可持久化块状数组"
1970
+ ],
1971
+ "name": "可持久化块状数组",
1972
+ "file": "ds/persistent-block-array.md"
1973
+ },
1974
+ {
1975
+ "domain": "数据结构",
1976
+ "path": [
1977
+ "可持久化数据结构",
1978
+ "可持久化平衡树"
1979
+ ],
1980
+ "name": "可持久化平衡树",
1981
+ "file": "ds/persistent-balanced.md"
1982
+ },
1983
+ {
1984
+ "domain": "数据结构",
1985
+ "path": [
1986
+ "可持久化数据结构",
1987
+ "可持久化字典树"
1988
+ ],
1989
+ "name": "可持久化字典树",
1990
+ "file": "ds/persistent-trie.md"
1991
+ },
1992
+ {
1993
+ "domain": "数据结构",
1994
+ "path": [
1995
+ "可持久化数据结构",
1996
+ "可持久化可并堆"
1997
+ ],
1998
+ "name": "可持久化可并堆",
1999
+ "file": "ds/persistent-heap.md"
2000
+ },
2001
+ {
2002
+ "domain": "数据结构",
2003
+ "path": [
2004
+ "树套树"
2005
+ ],
2006
+ "name": "树套树",
2007
+ "file": null
2008
+ },
2009
+ {
2010
+ "domain": "数据结构",
2011
+ "path": [
2012
+ "树套树",
2013
+ "线段树套线段树"
2014
+ ],
2015
+ "name": "线段树套线段树",
2016
+ "file": "ds/seg-in-seg.md"
2017
+ },
2018
+ {
2019
+ "domain": "数据结构",
2020
+ "path": [
2021
+ "树套树",
2022
+ "平衡树套线段树"
2023
+ ],
2024
+ "name": "平衡树套线段树",
2025
+ "file": "ds/seg-in-balanced.md"
2026
+ },
2027
+ {
2028
+ "domain": "数据结构",
2029
+ "path": [
2030
+ "树套树",
2031
+ "线段树套平衡树"
2032
+ ],
2033
+ "name": "线段树套平衡树",
2034
+ "file": "ds/balanced-in-seg.md"
2035
+ },
2036
+ {
2037
+ "domain": "数据结构",
2038
+ "path": [
2039
+ "树套树",
2040
+ "树状数组套权值线段树"
2041
+ ],
2042
+ "name": "树状数组套权值线段树",
2043
+ "file": "ds/seg-in-bit.md"
2044
+ },
2045
+ {
2046
+ "domain": "数据结构",
2047
+ "path": [
2048
+ "树套树",
2049
+ "分块套树状数组"
2050
+ ],
2051
+ "name": "分块套树状数组",
2052
+ "file": "ds/bit-in-block-array.md"
2053
+ },
2054
+ {
2055
+ "domain": "数据结构",
2056
+ "path": [
2057
+ "K-D Tree"
2058
+ ],
2059
+ "name": "K-D Tree",
2060
+ "file": "ds/kdt.md"
2061
+ },
2062
+ {
2063
+ "domain": "数据结构",
2064
+ "path": [
2065
+ "动态树"
2066
+ ],
2067
+ "name": "动态树",
2068
+ "file": null
2069
+ },
2070
+ {
2071
+ "domain": "数据结构",
2072
+ "path": [
2073
+ "动态树",
2074
+ "Link Cut Tree"
2075
+ ],
2076
+ "name": "Link Cut Tree",
2077
+ "file": "ds/lct.md"
2078
+ },
2079
+ {
2080
+ "domain": "数据结构",
2081
+ "path": [
2082
+ "动态树",
2083
+ "Euler Tour Tree"
2084
+ ],
2085
+ "name": "Euler Tour Tree",
2086
+ "file": "ds/ett.md"
2087
+ },
2088
+ {
2089
+ "domain": "数据结构",
2090
+ "path": [
2091
+ "动态树",
2092
+ "Top Tree"
2093
+ ],
2094
+ "name": "Top Tree",
2095
+ "file": "ds/top-tree.md"
2096
+ },
2097
+ {
2098
+ "domain": "数据结构",
2099
+ "path": [
2100
+ "析合树"
2101
+ ],
2102
+ "name": "析合树",
2103
+ "file": "ds/divide-combine.md"
2104
+ },
2105
+ {
2106
+ "domain": "数据结构",
2107
+ "path": [
2108
+ "PQ 树"
2109
+ ],
2110
+ "name": "PQ 树",
2111
+ "file": "ds/pq-tree.md"
2112
+ },
2113
+ {
2114
+ "domain": "数据结构",
2115
+ "path": [
2116
+ "手指树"
2117
+ ],
2118
+ "name": "手指树",
2119
+ "file": "ds/finger-tree.md"
2120
+ },
2121
+ {
2122
+ "domain": "数据结构",
2123
+ "path": [
2124
+ "霍夫曼树"
2125
+ ],
2126
+ "name": "霍夫曼树",
2127
+ "file": "ds/huffman-tree.md"
2128
+ },
2129
+ {
2130
+ "domain": "图论",
2131
+ "path": [
2132
+ "图论相关概念"
2133
+ ],
2134
+ "name": "图论相关概念",
2135
+ "file": "graph/concept.md"
2136
+ },
2137
+ {
2138
+ "domain": "图论",
2139
+ "path": [
2140
+ "图的存储"
2141
+ ],
2142
+ "name": "图的存储",
2143
+ "file": "graph/save.md"
2144
+ },
2145
+ {
2146
+ "domain": "图论",
2147
+ "path": [
2148
+ "DFS(图论)"
2149
+ ],
2150
+ "name": "DFS(图论)",
2151
+ "file": "graph/dfs.md"
2152
+ },
2153
+ {
2154
+ "domain": "图论",
2155
+ "path": [
2156
+ "BFS(图论)"
2157
+ ],
2158
+ "name": "BFS(图论)",
2159
+ "file": "graph/bfs.md"
2160
+ },
2161
+ {
2162
+ "domain": "图论",
2163
+ "path": [
2164
+ "树上问题"
2165
+ ],
2166
+ "name": "树上问题",
2167
+ "file": null
2168
+ },
2169
+ {
2170
+ "domain": "图论",
2171
+ "path": [
2172
+ "树上问题",
2173
+ "树基础"
2174
+ ],
2175
+ "name": "树基础",
2176
+ "file": "graph/tree-basic.md"
2177
+ },
2178
+ {
2179
+ "domain": "图论",
2180
+ "path": [
2181
+ "树上问题",
2182
+ "树的直径"
2183
+ ],
2184
+ "name": "树的直径",
2185
+ "file": "graph/tree-diameter.md"
2186
+ },
2187
+ {
2188
+ "domain": "图论",
2189
+ "path": [
2190
+ "树上问题",
2191
+ "最近公共祖先"
2192
+ ],
2193
+ "name": "最近公共祖先",
2194
+ "file": "graph/lca.md"
2195
+ },
2196
+ {
2197
+ "domain": "图论",
2198
+ "path": [
2199
+ "树上问题",
2200
+ "树的重心"
2201
+ ],
2202
+ "name": "树的重心",
2203
+ "file": "graph/tree-centroid.md"
2204
+ },
2205
+ {
2206
+ "domain": "图论",
2207
+ "path": [
2208
+ "树上问题",
2209
+ "树链剖分"
2210
+ ],
2211
+ "name": "树链剖分",
2212
+ "file": "graph/hld.md"
2213
+ },
2214
+ {
2215
+ "domain": "图论",
2216
+ "path": [
2217
+ "树上问题",
2218
+ "树上启发式合并"
2219
+ ],
2220
+ "name": "树上启发式合并",
2221
+ "file": "graph/dsu-on-tree.md"
2222
+ },
2223
+ {
2224
+ "domain": "图论",
2225
+ "path": [
2226
+ "树上问题",
2227
+ "虚树"
2228
+ ],
2229
+ "name": "虚树",
2230
+ "file": "graph/virtual-tree.md"
2231
+ },
2232
+ {
2233
+ "domain": "图论",
2234
+ "path": [
2235
+ "树上问题",
2236
+ "树分治"
2237
+ ],
2238
+ "name": "树分治",
2239
+ "file": "graph/tree-divide.md"
2240
+ },
2241
+ {
2242
+ "domain": "图论",
2243
+ "path": [
2244
+ "树上问题",
2245
+ "动态树分治"
2246
+ ],
2247
+ "name": "动态树分治",
2248
+ "file": "graph/dynamic-tree-divide.md"
2249
+ },
2250
+ {
2251
+ "domain": "图论",
2252
+ "path": [
2253
+ "树上问题",
2254
+ "AHU 算法"
2255
+ ],
2256
+ "name": "AHU 算法",
2257
+ "file": "graph/tree-ahu.md"
2258
+ },
2259
+ {
2260
+ "domain": "图论",
2261
+ "path": [
2262
+ "树上问题",
2263
+ "树哈希"
2264
+ ],
2265
+ "name": "树哈希",
2266
+ "file": "graph/tree-hash.md"
2267
+ },
2268
+ {
2269
+ "domain": "图论",
2270
+ "path": [
2271
+ "树上问题",
2272
+ "树上随机游走"
2273
+ ],
2274
+ "name": "树上随机游走",
2275
+ "file": "graph/tree-random-walk.md"
2276
+ },
2277
+ {
2278
+ "domain": "图论",
2279
+ "path": [
2280
+ "矩阵树定理"
2281
+ ],
2282
+ "name": "矩阵树定理",
2283
+ "file": "graph/matrix-tree.md"
2284
+ },
2285
+ {
2286
+ "domain": "图论",
2287
+ "path": [
2288
+ "有向无环图"
2289
+ ],
2290
+ "name": "有向无环图",
2291
+ "file": "graph/dag.md"
2292
+ },
2293
+ {
2294
+ "domain": "图论",
2295
+ "path": [
2296
+ "拓扑排序"
2297
+ ],
2298
+ "name": "拓扑排序",
2299
+ "file": "graph/topo.md"
2300
+ },
2301
+ {
2302
+ "domain": "图论",
2303
+ "path": [
2304
+ "最小生成树"
2305
+ ],
2306
+ "name": "最小生成树",
2307
+ "file": "graph/mst.md"
2308
+ },
2309
+ {
2310
+ "domain": "图论",
2311
+ "path": [
2312
+ "斯坦纳树"
2313
+ ],
2314
+ "name": "斯坦纳树",
2315
+ "file": "graph/steiner-tree.md"
2316
+ },
2317
+ {
2318
+ "domain": "图论",
2319
+ "path": [
2320
+ "最小树形图"
2321
+ ],
2322
+ "name": "最小树形图",
2323
+ "file": "graph/dmst.md"
2324
+ },
2325
+ {
2326
+ "domain": "图论",
2327
+ "path": [
2328
+ "最小直径生成树"
2329
+ ],
2330
+ "name": "最小直径生成树",
2331
+ "file": "graph/mdst.md"
2332
+ },
2333
+ {
2334
+ "domain": "图论",
2335
+ "path": [
2336
+ "最短路"
2337
+ ],
2338
+ "name": "最短路",
2339
+ "file": "graph/shortest-path.md"
2340
+ },
2341
+ {
2342
+ "domain": "图论",
2343
+ "path": [
2344
+ "拆点"
2345
+ ],
2346
+ "name": "拆点",
2347
+ "file": "graph/node.md"
2348
+ },
2349
+ {
2350
+ "domain": "图论",
2351
+ "path": [
2352
+ "差分约束"
2353
+ ],
2354
+ "name": "差分约束",
2355
+ "file": "graph/diff-constraints.md"
2356
+ },
2357
+ {
2358
+ "domain": "图论",
2359
+ "path": [
2360
+ "k 短路"
2361
+ ],
2362
+ "name": "k 短路",
2363
+ "file": "graph/kth-path.md"
2364
+ },
2365
+ {
2366
+ "domain": "图论",
2367
+ "path": [
2368
+ "同余最短路"
2369
+ ],
2370
+ "name": "同余最短路",
2371
+ "file": "graph/mod-shortest-path.md"
2372
+ },
2373
+ {
2374
+ "domain": "图论",
2375
+ "path": [
2376
+ "连通性相关"
2377
+ ],
2378
+ "name": "连通性相关",
2379
+ "file": null
2380
+ },
2381
+ {
2382
+ "domain": "图论",
2383
+ "path": [
2384
+ "连通性相关",
2385
+ "强连通分量"
2386
+ ],
2387
+ "name": "强连通分量",
2388
+ "file": "graph/scc.md"
2389
+ },
2390
+ {
2391
+ "domain": "图论",
2392
+ "path": [
2393
+ "连通性相关",
2394
+ "双连通分量"
2395
+ ],
2396
+ "name": "双连通分量",
2397
+ "file": "graph/bcc.md"
2398
+ },
2399
+ {
2400
+ "domain": "图论",
2401
+ "path": [
2402
+ "连通性相关",
2403
+ "割点和桥"
2404
+ ],
2405
+ "name": "割点和桥",
2406
+ "file": "graph/cut.md"
2407
+ },
2408
+ {
2409
+ "domain": "图论",
2410
+ "path": [
2411
+ "连通性相关",
2412
+ "圆方树"
2413
+ ],
2414
+ "name": "圆方树",
2415
+ "file": "graph/block-forest.md"
2416
+ },
2417
+ {
2418
+ "domain": "图论",
2419
+ "path": [
2420
+ "连通性相关",
2421
+ "点/边连通度"
2422
+ ],
2423
+ "name": "点/边连通度",
2424
+ "file": "graph/connectivity.md"
2425
+ },
2426
+ {
2427
+ "domain": "图论",
2428
+ "path": [
2429
+ "环计数问题"
2430
+ ],
2431
+ "name": "环计数问题",
2432
+ "file": "graph/rings-count.md"
2433
+ },
2434
+ {
2435
+ "domain": "图论",
2436
+ "path": [
2437
+ "2-SAT"
2438
+ ],
2439
+ "name": "2-SAT",
2440
+ "file": "graph/2-sat.md"
2441
+ },
2442
+ {
2443
+ "domain": "图论",
2444
+ "path": [
2445
+ "欧拉图"
2446
+ ],
2447
+ "name": "欧拉图",
2448
+ "file": "graph/euler.md"
2449
+ },
2450
+ {
2451
+ "domain": "图论",
2452
+ "path": [
2453
+ "哈密顿图"
2454
+ ],
2455
+ "name": "哈密顿图",
2456
+ "file": "graph/hamilton.md"
2457
+ },
2458
+ {
2459
+ "domain": "图论",
2460
+ "path": [
2461
+ "二分图"
2462
+ ],
2463
+ "name": "二分图",
2464
+ "file": "graph/bi-graph.md"
2465
+ },
2466
+ {
2467
+ "domain": "图论",
2468
+ "path": [
2469
+ "最小环"
2470
+ ],
2471
+ "name": "最小环",
2472
+ "file": "graph/min-cycle.md"
2473
+ },
2474
+ {
2475
+ "domain": "图论",
2476
+ "path": [
2477
+ "平面图"
2478
+ ],
2479
+ "name": "平面图",
2480
+ "file": "graph/planar.md"
2481
+ },
2482
+ {
2483
+ "domain": "图论",
2484
+ "path": [
2485
+ "图的着色"
2486
+ ],
2487
+ "name": "图的着色",
2488
+ "file": "graph/color.md"
2489
+ },
2490
+ {
2491
+ "domain": "图论",
2492
+ "path": [
2493
+ "网络流"
2494
+ ],
2495
+ "name": "网络流",
2496
+ "file": null
2497
+ },
2498
+ {
2499
+ "domain": "图论",
2500
+ "path": [
2501
+ "网络流",
2502
+ "最大流"
2503
+ ],
2504
+ "name": "最大流",
2505
+ "file": "graph/flow/max-flow.md"
2506
+ },
2507
+ {
2508
+ "domain": "图论",
2509
+ "path": [
2510
+ "网络流",
2511
+ "最小割"
2512
+ ],
2513
+ "name": "最小割",
2514
+ "file": "graph/flow/min-cut.md"
2515
+ },
2516
+ {
2517
+ "domain": "图论",
2518
+ "path": [
2519
+ "网络流",
2520
+ "费用流"
2521
+ ],
2522
+ "name": "费用流",
2523
+ "file": "graph/flow/min-cost.md"
2524
+ },
2525
+ {
2526
+ "domain": "图论",
2527
+ "path": [
2528
+ "网络流",
2529
+ "上下界网络流"
2530
+ ],
2531
+ "name": "上下界网络流",
2532
+ "file": "graph/flow/bound.md"
2533
+ },
2534
+ {
2535
+ "domain": "图论",
2536
+ "path": [
2537
+ "Stoer–Wagner 算法"
2538
+ ],
2539
+ "name": "Stoer–Wagner 算法",
2540
+ "file": "graph/stoer-wagner.md"
2541
+ },
2542
+ {
2543
+ "domain": "图论",
2544
+ "path": [
2545
+ "图的匹配"
2546
+ ],
2547
+ "name": "图的匹配",
2548
+ "file": null
2549
+ },
2550
+ {
2551
+ "domain": "图论",
2552
+ "path": [
2553
+ "图的匹配",
2554
+ "图匹配"
2555
+ ],
2556
+ "name": "图匹配",
2557
+ "file": "graph/graph-matching/graph-match.md"
2558
+ },
2559
+ {
2560
+ "domain": "图论",
2561
+ "path": [
2562
+ "图的匹配",
2563
+ "增广路"
2564
+ ],
2565
+ "name": "增广路",
2566
+ "file": "graph/graph-matching/augment.md"
2567
+ },
2568
+ {
2569
+ "domain": "图论",
2570
+ "path": [
2571
+ "图的匹配",
2572
+ "二分图最大匹配"
2573
+ ],
2574
+ "name": "二分图最大匹配",
2575
+ "file": "graph/graph-matching/bigraph-match.md"
2576
+ },
2577
+ {
2578
+ "domain": "图论",
2579
+ "path": [
2580
+ "图的匹配",
2581
+ "二分图最大权匹配"
2582
+ ],
2583
+ "name": "二分图最大权匹配",
2584
+ "file": "graph/graph-matching/bigraph-weight-match.md"
2585
+ },
2586
+ {
2587
+ "domain": "图论",
2588
+ "path": [
2589
+ "图的匹配",
2590
+ "一般图最大匹配"
2591
+ ],
2592
+ "name": "一般图最大匹配",
2593
+ "file": "graph/graph-matching/general-match.md"
2594
+ },
2595
+ {
2596
+ "domain": "图论",
2597
+ "path": [
2598
+ "图的匹配",
2599
+ "一般图最大权匹配"
2600
+ ],
2601
+ "name": "一般图最大权匹配",
2602
+ "file": "graph/graph-matching/general-weight-match.md"
2603
+ },
2604
+ {
2605
+ "domain": "图论",
2606
+ "path": [
2607
+ "Prüfer 序列"
2608
+ ],
2609
+ "name": "Prüfer 序列",
2610
+ "file": "graph/prufer.md"
2611
+ },
2612
+ {
2613
+ "domain": "图论",
2614
+ "path": [
2615
+ "LGV 引理"
2616
+ ],
2617
+ "name": "LGV 引理",
2618
+ "file": "graph/lgv.md"
2619
+ },
2620
+ {
2621
+ "domain": "图论",
2622
+ "path": [
2623
+ "弦图"
2624
+ ],
2625
+ "name": "弦图",
2626
+ "file": "graph/chord.md"
2627
+ },
2628
+ {
2629
+ "domain": "图论",
2630
+ "path": [
2631
+ "最大团搜索算法"
2632
+ ],
2633
+ "name": "最大团搜索算法",
2634
+ "file": "graph/max-clique.md"
2635
+ },
2636
+ {
2637
+ "domain": "图论",
2638
+ "path": [
2639
+ "支配树"
2640
+ ],
2641
+ "name": "支配树",
2642
+ "file": "graph/dominator-tree.md"
2643
+ },
2644
+ {
2645
+ "domain": "图论",
2646
+ "path": [
2647
+ "图上随机游走"
2648
+ ],
2649
+ "name": "图上随机游走",
2650
+ "file": "graph/graph-random-walk.md"
2651
+ },
2652
+ {
2653
+ "domain": "计算几何",
2654
+ "path": [
2655
+ "二维计算几何基础"
2656
+ ],
2657
+ "name": "二维计算几何基础",
2658
+ "file": "geometry/2d.md"
2659
+ },
2660
+ {
2661
+ "domain": "计算几何",
2662
+ "path": [
2663
+ "三维计算几何基础"
2664
+ ],
2665
+ "name": "三维计算几何基础",
2666
+ "file": "geometry/3d.md"
2667
+ },
2668
+ {
2669
+ "domain": "计算几何",
2670
+ "path": [
2671
+ "距离"
2672
+ ],
2673
+ "name": "距离",
2674
+ "file": "geometry/distance.md"
2675
+ },
2676
+ {
2677
+ "domain": "计算几何",
2678
+ "path": [
2679
+ "Pick 定理"
2680
+ ],
2681
+ "name": "Pick 定理",
2682
+ "file": "geometry/pick.md"
2683
+ },
2684
+ {
2685
+ "domain": "计算几何",
2686
+ "path": [
2687
+ "三角剖分"
2688
+ ],
2689
+ "name": "三角剖分",
2690
+ "file": "geometry/triangulation.md"
2691
+ },
2692
+ {
2693
+ "domain": "计算几何",
2694
+ "path": [
2695
+ "凸包"
2696
+ ],
2697
+ "name": "凸包",
2698
+ "file": "geometry/convex-hull.md"
2699
+ },
2700
+ {
2701
+ "domain": "计算几何",
2702
+ "path": [
2703
+ "扫描线"
2704
+ ],
2705
+ "name": "扫描线",
2706
+ "file": "geometry/scanning.md"
2707
+ },
2708
+ {
2709
+ "domain": "计算几何",
2710
+ "path": [
2711
+ "旋转卡壳"
2712
+ ],
2713
+ "name": "旋转卡壳",
2714
+ "file": "geometry/rotating-calipers.md"
2715
+ },
2716
+ {
2717
+ "domain": "计算几何",
2718
+ "path": [
2719
+ "半平面交"
2720
+ ],
2721
+ "name": "半平面交",
2722
+ "file": "geometry/half-plane.md"
2723
+ },
2724
+ {
2725
+ "domain": "计算几何",
2726
+ "path": [
2727
+ "平面最近点对"
2728
+ ],
2729
+ "name": "平面最近点对",
2730
+ "file": "geometry/nearest-points.md"
2731
+ },
2732
+ {
2733
+ "domain": "计算几何",
2734
+ "path": [
2735
+ "随机增量法"
2736
+ ],
2737
+ "name": "随机增量法",
2738
+ "file": "geometry/random-incremental.md"
2739
+ },
2740
+ {
2741
+ "domain": "计算几何",
2742
+ "path": [
2743
+ "反演变换"
2744
+ ],
2745
+ "name": "反演变换",
2746
+ "file": "geometry/inverse.md"
2747
+ },
2748
+ {
2749
+ "domain": "计算几何",
2750
+ "path": [
2751
+ "计算几何杂项"
2752
+ ],
2753
+ "name": "计算几何杂项",
2754
+ "file": "geometry/misc.md"
2755
+ },
2756
+ {
2757
+ "domain": "杂项",
2758
+ "path": [
2759
+ "离散化"
2760
+ ],
2761
+ "name": "离散化",
2762
+ "file": "misc/discrete.md"
2763
+ },
2764
+ {
2765
+ "domain": "杂项",
2766
+ "path": [
2767
+ "双指针"
2768
+ ],
2769
+ "name": "双指针",
2770
+ "file": "misc/two-pointer.md"
2771
+ },
2772
+ {
2773
+ "domain": "杂项",
2774
+ "path": [
2775
+ "离线算法"
2776
+ ],
2777
+ "name": "离线算法",
2778
+ "file": null
2779
+ },
2780
+ {
2781
+ "domain": "杂项",
2782
+ "path": [
2783
+ "离线算法",
2784
+ "CDQ 分治"
2785
+ ],
2786
+ "name": "CDQ 分治",
2787
+ "file": "misc/cdq-divide.md"
2788
+ },
2789
+ {
2790
+ "domain": "杂项",
2791
+ "path": [
2792
+ "离线算法",
2793
+ "整体二分"
2794
+ ],
2795
+ "name": "整体二分",
2796
+ "file": "misc/parallel-binsearch.md"
2797
+ },
2798
+ {
2799
+ "domain": "杂项",
2800
+ "path": [
2801
+ "离线算法",
2802
+ "莫队算法"
2803
+ ],
2804
+ "name": "莫队算法",
2805
+ "file": null
2806
+ },
2807
+ {
2808
+ "domain": "杂项",
2809
+ "path": [
2810
+ "分数规划"
2811
+ ],
2812
+ "name": "分数规划",
2813
+ "file": "misc/frac-programming.md"
2814
+ },
2815
+ {
2816
+ "domain": "杂项",
2817
+ "path": [
2818
+ "随机化"
2819
+ ],
2820
+ "name": "随机化",
2821
+ "file": null
2822
+ },
2823
+ {
2824
+ "domain": "杂项",
2825
+ "path": [
2826
+ "随机化",
2827
+ "随机函数"
2828
+ ],
2829
+ "name": "随机函数",
2830
+ "file": "misc/random.md"
2831
+ },
2832
+ {
2833
+ "domain": "杂项",
2834
+ "path": [
2835
+ "随机化",
2836
+ "随机化技巧"
2837
+ ],
2838
+ "name": "随机化技巧",
2839
+ "file": "misc/rand-technique.md"
2840
+ },
2841
+ {
2842
+ "domain": "杂项",
2843
+ "path": [
2844
+ "随机化",
2845
+ "爬山算法"
2846
+ ],
2847
+ "name": "爬山算法",
2848
+ "file": "misc/hill-climbing.md"
2849
+ },
2850
+ {
2851
+ "domain": "杂项",
2852
+ "path": [
2853
+ "随机化",
2854
+ "模拟退火"
2855
+ ],
2856
+ "name": "模拟退火",
2857
+ "file": "misc/simulated-annealing.md"
2858
+ },
2859
+ {
2860
+ "domain": "杂项",
2861
+ "path": [
2862
+ "悬线法"
2863
+ ],
2864
+ "name": "悬线法",
2865
+ "file": "misc/hoverline.md"
2866
+ },
2867
+ {
2868
+ "domain": "杂项",
2869
+ "path": [
2870
+ "计算理论基础"
2871
+ ],
2872
+ "name": "计算理论基础",
2873
+ "file": "misc/cc-basic.md"
2874
+ },
2875
+ {
2876
+ "domain": "杂项",
2877
+ "path": [
2878
+ "字节顺序"
2879
+ ],
2880
+ "name": "字节顺序",
2881
+ "file": "misc/endianness.md"
2882
+ },
2883
+ {
2884
+ "domain": "杂项",
2885
+ "path": [
2886
+ "约瑟夫问题"
2887
+ ],
2888
+ "name": "约瑟夫问题",
2889
+ "file": "misc/josephus.md"
2890
+ },
2891
+ {
2892
+ "domain": "杂项",
2893
+ "path": [
2894
+ "格雷码"
2895
+ ],
2896
+ "name": "格雷码",
2897
+ "file": "misc/gray-code.md"
2898
+ },
2899
+ {
2900
+ "domain": "杂项",
2901
+ "path": [
2902
+ "表达式求值"
2903
+ ],
2904
+ "name": "表达式求值",
2905
+ "file": "misc/expression.md"
2906
+ },
2907
+ {
2908
+ "domain": "杂项",
2909
+ "path": [
2910
+ "在一台机器上规划任务"
2911
+ ],
2912
+ "name": "在一台机器上规划任务",
2913
+ "file": "misc/job-order.md"
2914
+ },
2915
+ {
2916
+ "domain": "杂项",
2917
+ "path": [
2918
+ "主元素问题"
2919
+ ],
2920
+ "name": "主元素问题",
2921
+ "file": "misc/main-element.md"
2922
+ },
2923
+ {
2924
+ "domain": "杂项",
2925
+ "path": [
2926
+ "Garsia–Wachs 算法"
2927
+ ],
2928
+ "name": "Garsia–Wachs 算法",
2929
+ "file": "misc/garsia-wachs.md"
2930
+ },
2931
+ {
2932
+ "domain": "杂项",
2933
+ "path": [
2934
+ "15-puzzle"
2935
+ ],
2936
+ "name": "15-puzzle",
2937
+ "file": "misc/15-puzzle.md"
2938
+ },
2939
+ {
2940
+ "domain": "杂项",
2941
+ "path": [
2942
+ "Kahan 求和"
2943
+ ],
2944
+ "name": "Kahan 求和",
2945
+ "file": "misc/kahan-summation.md"
2946
+ },
2947
+ {
2948
+ "domain": "杂项",
2949
+ "path": [
2950
+ "珂朵莉树/颜色段均摊"
2951
+ ],
2952
+ "name": "珂朵莉树/颜色段均摊",
2953
+ "file": "misc/odt.md"
2954
+ },
2955
+ {
2956
+ "domain": "专题",
2957
+ "path": [
2958
+ "RMQ"
2959
+ ],
2960
+ "name": "RMQ",
2961
+ "file": "topic/rmq.md"
2962
+ },
2963
+ {
2964
+ "domain": "专题",
2965
+ "path": [
2966
+ "并查集应用"
2967
+ ],
2968
+ "name": "并查集应用",
2969
+ "file": "topic/dsu-app.md"
2970
+ },
2971
+ {
2972
+ "domain": "专题",
2973
+ "path": [
2974
+ "括号序列"
2975
+ ],
2976
+ "name": "括号序列",
2977
+ "file": "topic/bracket.md"
2978
+ },
2979
+ {
2980
+ "domain": "专题",
2981
+ "path": [
2982
+ "线段树与离线询问"
2983
+ ],
2984
+ "name": "线段树与离线询问",
2985
+ "file": "topic/segment-tree-offline.md"
2986
+ }
2987
+ ]