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,2540 @@
1
+ # ══════════════════════════════════════════════════════════════
2
+ # MAP.yaml — 教练地图 v3(前置 = depends,分类 = parent)
3
+ #
4
+ # 生成方式:coach/build_map.py(OI-wiki 导航 351 条 + knowledge/DEPENDS.yaml)
5
+ # ⚠️ 不要手改本文件 —— 改 DEPENDS.yaml 再重跑 build_map.py。
6
+ #
7
+ # 结构约定:
8
+ # depends 前置。学这个之前必须先掌握的直接前置。空列表 = 确认的根节点,
9
+ # null = 还没铺(**不是根,是不知道**,别把它排到最前面)。
10
+ # parent 分类归属,**只用于分组显示,不是前置**。
11
+ # 「树上问题」是抽屉不是知识点 —— 它不参与任何依赖计算。
12
+ # tier 这个知识点重不重要:core/normal/rare/skip。
13
+ # 来自 knowledge/NODE_META.yaml(人手维护),本文件只做合并。
14
+ # entry 题池的 p25,≈「什么水平开始学得起」。**只有有题池的节点才有**。
15
+ # 来自 knowledge/NODE_ENTRY.yaml(机器算,跑 build-node-meta.mjs)。
16
+ # ══════════════════════════════════════════════════════════════
17
+
18
+ meta:
19
+ version: 3
20
+ source: OI-wiki 导航(mkdocs.yml)
21
+ node_count: 349
22
+ edge_count: 401
23
+ depends_covered: 349/349
24
+
25
+ nodes:
26
+ # ── 专题 ──
27
+ - id: RMQ
28
+ name: RMQ
29
+ domain: 专题
30
+ depends: [倍增, 线段树]
31
+ tier: normal
32
+ entry: 1600 # 题池 p25(≈入门段位),机器算
33
+ pool: 14 # entry 是拿这么多道题算出来的
34
+
35
+ - id: 并查集应用
36
+ name: 并查集应用
37
+ domain: 专题
38
+ depends: [并查集]
39
+ tier: normal
40
+
41
+ - id: 括号序列
42
+ name: 括号序列
43
+ domain: 专题
44
+ depends: [栈, 动态规划基础]
45
+ tier: normal
46
+
47
+ - id: 线段树与离线询问
48
+ name: 线段树与离线询问
49
+ domain: 专题
50
+ depends: [线段树, 离线算法]
51
+ tier: rare
52
+
53
+ # ── 动态规划 ──
54
+ - id: DAG 上的 DP
55
+ name: DAG 上的 DP
56
+ domain: 动态规划
57
+ depends: [动态规划基础, 拓扑排序]
58
+ tier: normal
59
+
60
+ - id: DP 优化
61
+ name: DP 优化
62
+ domain: 动态规划
63
+ depends: [动态规划基础]
64
+ tier: normal
65
+
66
+ - id: 其它 DP 方法
67
+ name: 其它 DP 方法
68
+ domain: 动态规划
69
+ depends: [动态规划基础]
70
+ tier: rare
71
+
72
+ - id: 动态 DP
73
+ name: 动态 DP
74
+ domain: 动态规划
75
+ depends: [动态规划基础, 树链剖分]
76
+ tier: rare
77
+ entry: 2600 # 题池 p25(≈入门段位),机器算
78
+ pool: 28 # entry 是拿这么多道题算出来的
79
+
80
+ - id: 动态规划基础
81
+ name: 动态规划基础
82
+ domain: 动态规划
83
+ depends: [递归 & 分治, 枚举]
84
+ tier: core
85
+
86
+ - id: 区间 DP
87
+ name: 区间 DP
88
+ domain: 动态规划
89
+ depends: [动态规划基础]
90
+ tier: core
91
+ entry: 1700 # 题池 p25(≈入门段位),机器算
92
+ pool: 108 # entry 是拿这么多道题算出来的
93
+
94
+ - id: 插头 DP
95
+ name: 插头 DP
96
+ domain: 动态规划
97
+ depends: [状压 DP]
98
+ tier: rare
99
+
100
+ - id: 数位 DP
101
+ name: 数位 DP
102
+ domain: 动态规划
103
+ depends: [动态规划基础, 位运算]
104
+ tier: core
105
+ entry: 2000 # 题池 p25(≈入门段位),机器算
106
+ pool: 96 # entry 是拿这么多道题算出来的
107
+
108
+ - id: 树形 DP
109
+ name: 树形 DP
110
+ domain: 动态规划
111
+ depends: [动态规划基础, DFS(搜索)]
112
+ tier: core
113
+ entry: 1700 # 题池 p25(≈入门段位),机器算
114
+ pool: 334 # entry 是拿这么多道题算出来的
115
+
116
+ - id: 概率 DP
117
+ name: 概率 DP
118
+ domain: 动态规划
119
+ depends: [动态规划基础, 概率论]
120
+ tier: normal
121
+
122
+ - id: 状压 DP
123
+ name: 状压 DP
124
+ domain: 动态规划
125
+ depends: [动态规划基础]
126
+ tier: core
127
+ entry: 2000 # 题池 p25(≈入门段位),机器算
128
+ pool: 251 # entry 是拿这么多道题算出来的
129
+
130
+ - id: 背包 DP
131
+ name: 背包 DP
132
+ domain: 动态规划
133
+ depends: [动态规划基础]
134
+ tier: core
135
+ entry: 1500 # 题池 p25(≈入门段位),机器算
136
+ pool: 250 # entry 是拿这么多道题算出来的
137
+
138
+ - id: 计数 DP
139
+ name: 计数 DP
140
+ domain: 动态规划
141
+ depends: [动态规划基础, 排列组合]
142
+ tier: normal
143
+
144
+ - id: 记忆化搜索
145
+ name: 记忆化搜索
146
+ domain: 动态规划
147
+ depends: [递归 & 分治]
148
+ tier: core
149
+ entry: 1600 # 题池 p25(≈入门段位),机器算
150
+ pool: 209 # entry 是拿这么多道题算出来的
151
+
152
+ - id: 单调队列/单调栈优化
153
+ name: 单调队列/单调栈优化
154
+ domain: 动态规划
155
+ parent: DP 优化
156
+ depends: [动态规划基础, 单调队列, 单调栈]
157
+ tier: normal
158
+
159
+ - id: 四边形不等式优化
160
+ name: 四边形不等式优化
161
+ domain: 动态规划
162
+ parent: DP 优化
163
+ depends: [区间 DP]
164
+ tier: rare
165
+
166
+ - id: 斜率优化
167
+ name: 斜率优化
168
+ domain: 动态规划
169
+ parent: DP 优化
170
+ depends: [单调队列/单调栈优化]
171
+ tier: normal
172
+ entry: 2300 # 题池 p25(≈入门段位),机器算
173
+ pool: 58 # entry 是拿这么多道题算出来的
174
+
175
+ - id: 状态设计优化
176
+ name: 状态设计优化
177
+ domain: 动态规划
178
+ parent: DP 优化
179
+ depends: [区间 DP]
180
+ tier: normal
181
+
182
+ # ── 图论 ──
183
+ - id: 2-SAT
184
+ name: 2-SAT
185
+ domain: 图论
186
+ depends: [强连通分量]
187
+ tier: normal
188
+ entry: 2300 # 题池 p25(≈入门段位),机器算
189
+ pool: 25 # entry 是拿这么多道题算出来的
190
+
191
+ - id: BFS(图论)
192
+ name: BFS(图论)
193
+ domain: 图论
194
+ depends: [图的存储, 队列]
195
+ tier: core
196
+
197
+ - id: DFS(图论)
198
+ name: DFS(图论)
199
+ domain: 图论
200
+ depends: [图的存储, 递归 & 分治]
201
+ tier: core
202
+
203
+ - id: LGV 引理
204
+ name: LGV 引理
205
+ domain: 图论
206
+ depends: [组合数学, 行列式]
207
+ tier: rare
208
+ entry: 2600 # 题池 p25(≈入门段位),机器算
209
+ pool: 8 # entry 是拿这么多道题算出来的
210
+
211
+ - id: Prüfer 序列
212
+ name: Prüfer 序列
213
+ domain: 图论
214
+ depends: [树基础]
215
+ tier: normal
216
+ entry: 1700 # 题池 p25(≈入门段位),机器算
217
+ pool: 15 # entry 是拿这么多道题算出来的
218
+
219
+ - id: Stoer–Wagner 算法
220
+ name: Stoer–Wagner 算法
221
+ domain: 图论
222
+ depends: [图的存储]
223
+ tier: rare
224
+
225
+ - id: k 短路
226
+ name: k 短路
227
+ domain: 图论
228
+ depends: [最短路]
229
+ tier: rare
230
+
231
+ - id: 二分图
232
+ name: 二分图
233
+ domain: 图论
234
+ depends: [图的存储]
235
+ tier: core
236
+ entry: 1700 # 题池 p25(≈入门段位),机器算
237
+ pool: 230 # entry 是拿这么多道题算出来的
238
+
239
+ - id: 同余最短路
240
+ name: 同余最短路
241
+ domain: 图论
242
+ depends: [最短路, 线性同余方程]
243
+ tier: rare
244
+
245
+ - id: 哈密顿图
246
+ name: 哈密顿图
247
+ domain: 图论
248
+ depends: [图的存储]
249
+ tier: rare
250
+
251
+ - id: 图上随机游走
252
+ name: 图上随机游走
253
+ domain: 图论
254
+ depends: [图的存储, 概率论]
255
+ tier: rare
256
+
257
+ - id: 图的匹配
258
+ name: 图的匹配
259
+ domain: 图论
260
+ depends: [图论相关概念]
261
+ tier: rare
262
+
263
+ - id: 图的存储
264
+ name: 图的存储
265
+ domain: 图论
266
+ depends: [图论相关概念]
267
+ tier: core
268
+
269
+ - id: 图的着色
270
+ name: 图的着色
271
+ domain: 图论
272
+ depends: [图的存储]
273
+ tier: rare
274
+
275
+ - id: 图论相关概念
276
+ name: 图论相关概念
277
+ domain: 图论
278
+ depends: []
279
+ tier: core
280
+
281
+ - id: 差分约束
282
+ name: 差分约束
283
+ domain: 图论
284
+ depends: [最短路]
285
+ tier: normal
286
+ entry: 1700 # 题池 p25(≈入门段位),机器算
287
+ pool: 32 # entry 是拿这么多道题算出来的
288
+
289
+ - id: 平面图
290
+ name: 平面图
291
+ domain: 图论
292
+ depends: [欧拉图]
293
+ tier: rare
294
+ entry: 2600 # 题池 p25(≈入门段位),机器算
295
+ pool: 15 # entry 是拿这么多道题算出来的
296
+
297
+ - id: 弦图
298
+ name: 弦图
299
+ domain: 图论
300
+ depends: [图的匹配]
301
+ tier: rare
302
+
303
+ - id: 拆点
304
+ name: 拆点
305
+ domain: 图论
306
+ depends: [网络流]
307
+ tier: normal
308
+
309
+ - id: 拓扑排序
310
+ name: 拓扑排序
311
+ domain: 图论
312
+ depends: [有向无环图]
313
+ tier: core
314
+ entry: 1600 # 题池 p25(≈入门段位),机器算
315
+ pool: 221 # entry 是拿这么多道题算出来的
316
+
317
+ - id: 支配树
318
+ name: 支配树
319
+ domain: 图论
320
+ depends: [DFS(图论)]
321
+ tier: rare
322
+
323
+ - id: 斯坦纳树
324
+ name: 斯坦纳树
325
+ domain: 图论
326
+ depends: [状压 DP]
327
+ tier: rare
328
+
329
+ - id: 最大团搜索算法
330
+ name: 最大团搜索算法
331
+ domain: 图论
332
+ depends: [图的存储, DFS(搜索)]
333
+ tier: rare
334
+
335
+ - id: 最小树形图
336
+ name: 最小树形图
337
+ domain: 图论
338
+ depends: [最小生成树]
339
+ tier: rare
340
+
341
+ - id: 最小环
342
+ name: 最小环
343
+ domain: 图论
344
+ depends: [最短路]
345
+ tier: rare
346
+
347
+ - id: 最小生成树
348
+ name: 最小生成树
349
+ domain: 图论
350
+ depends: [并查集, 排序]
351
+ tier: core
352
+
353
+ - id: 最小直径生成树
354
+ name: 最小直径生成树
355
+ domain: 图论
356
+ depends: [最小生成树, 最短路]
357
+ tier: rare
358
+
359
+ - id: 最短路
360
+ name: 最短路
361
+ domain: 图论
362
+ depends: [二叉堆, BFS(图论)]
363
+ tier: core
364
+ entry: 1600 # 题池 p25(≈入门段位),机器算
365
+ pool: 748 # entry 是拿这么多道题算出来的
366
+
367
+ - id: 有向无环图
368
+ name: 有向无环图
369
+ domain: 图论
370
+ depends: [图的存储]
371
+ tier: core
372
+
373
+ - id: 树上问题
374
+ name: 树上问题
375
+ domain: 图论
376
+ depends: [树基础]
377
+ tier: skip
378
+
379
+ - id: 欧拉图
380
+ name: 欧拉图
381
+ domain: 图论
382
+ depends: [图的存储]
383
+ tier: normal
384
+
385
+ - id: 环计数问题
386
+ name: 环计数问题
387
+ domain: 图论
388
+ depends: [图的存储]
389
+ tier: rare
390
+
391
+ - id: 矩阵树定理
392
+ name: 矩阵树定理
393
+ domain: 图论
394
+ depends: [高斯消元, 行列式]
395
+ tier: rare
396
+ entry: 2600 # 题池 p25(≈入门段位),机器算
397
+ pool: 18 # entry 是拿这么多道题算出来的
398
+
399
+ - id: 网络流
400
+ name: 网络流
401
+ domain: 图论
402
+ depends: [BFS(图论)]
403
+ tier: normal
404
+ entry: 2000 # 题池 p25(≈入门段位),机器算
405
+ pool: 361 # entry 是拿这么多道题算出来的
406
+
407
+ - id: 连通性相关
408
+ name: 连通性相关
409
+ domain: 图论
410
+ depends: [图的存储]
411
+ tier: core
412
+
413
+ - id: 一般图最大匹配
414
+ name: 一般图最大匹配
415
+ domain: 图论
416
+ parent: 图的匹配
417
+ depends: [增广路]
418
+ tier: rare
419
+
420
+ - id: 一般图最大权匹配
421
+ name: 一般图最大权匹配
422
+ domain: 图论
423
+ parent: 图的匹配
424
+ depends: [一般图最大匹配, 二分图最大权匹配]
425
+ tier: rare
426
+
427
+ - id: 二分图最大匹配
428
+ name: 二分图最大匹配
429
+ domain: 图论
430
+ parent: 图的匹配
431
+ depends: [增广路, 二分图]
432
+ tier: normal
433
+
434
+ - id: 二分图最大权匹配
435
+ name: 二分图最大权匹配
436
+ domain: 图论
437
+ parent: 图的匹配
438
+ depends: [二分图最大匹配]
439
+ tier: rare
440
+
441
+ - id: 图匹配
442
+ name: 图匹配
443
+ domain: 图论
444
+ parent: 图的匹配
445
+ depends: [图的匹配]
446
+ tier: rare
447
+ entry: 1600 # 题池 p25(≈入门段位),机器算
448
+ pool: 80 # entry 是拿这么多道题算出来的
449
+
450
+ - id: 增广路
451
+ name: 增广路
452
+ domain: 图论
453
+ parent: 图的匹配
454
+ depends: [图的匹配, DFS(图论)]
455
+ tier: normal
456
+
457
+ - id: AHU 算法
458
+ name: AHU 算法
459
+ domain: 图论
460
+ parent: 树上问题
461
+ depends: [树哈希]
462
+ tier: skip
463
+
464
+ - id: 动态树分治
465
+ name: 动态树分治
466
+ domain: 图论
467
+ parent: 树上问题
468
+ depends: [树分治]
469
+ tier: rare
470
+
471
+ - id: 最近公共祖先
472
+ name: 最近公共祖先
473
+ domain: 图论
474
+ parent: 树上问题
475
+ depends: [倍增, DFS(图论)]
476
+ tier: core
477
+ entry: 1700 # 题池 p25(≈入门段位),机器算
478
+ pool: 265 # entry 是拿这么多道题算出来的
479
+
480
+ - id: 树上启发式合并
481
+ name: 树上启发式合并
482
+ domain: 图论
483
+ parent: 树上问题
484
+ depends: [DFS(图论)]
485
+ tier: normal
486
+ entry: 2000 # 题池 p25(≈入门段位),机器算
487
+ pool: 42 # entry 是拿这么多道题算出来的
488
+
489
+ - id: 树上随机游走
490
+ name: 树上随机游走
491
+ domain: 图论
492
+ parent: 树上问题
493
+ depends: [树基础, 概率论]
494
+ tier: rare
495
+
496
+ - id: 树分治
497
+ name: 树分治
498
+ domain: 图论
499
+ parent: 树上问题
500
+ depends: [DFS(图论)]
501
+ tier: normal
502
+ entry: 2000 # 题池 p25(≈入门段位),机器算
503
+ pool: 25 # entry 是拿这么多道题算出来的
504
+
505
+ - id: 树哈希
506
+ name: 树哈希
507
+ domain: 图论
508
+ parent: 树上问题
509
+ depends: [树基础, 字符串哈希]
510
+ tier: normal
511
+
512
+ - id: 树基础
513
+ name: 树基础
514
+ domain: 图论
515
+ parent: 树上问题
516
+ depends: [图的存储]
517
+ tier: core
518
+
519
+ - id: 树的直径
520
+ name: 树的直径
521
+ domain: 图论
522
+ parent: 树上问题
523
+ depends: [树基础]
524
+ tier: core
525
+ entry: 1700 # 题池 p25(≈入门段位),机器算
526
+ pool: 46 # entry 是拿这么多道题算出来的
527
+
528
+ - id: 树的重心
529
+ name: 树的重心
530
+ domain: 图论
531
+ parent: 树上问题
532
+ depends: [树基础]
533
+ tier: core
534
+ entry: 2000 # 题池 p25(≈入门段位),机器算
535
+ pool: 14 # entry 是拿这么多道题算出来的
536
+
537
+ - id: 树链剖分
538
+ name: 树链剖分
539
+ domain: 图论
540
+ parent: 树上问题
541
+ depends: [DFS(图论), 线段树]
542
+ tier: normal
543
+ entry: 2000 # 题池 p25(≈入门段位),机器算
544
+ pool: 273 # entry 是拿这么多道题算出来的
545
+
546
+ - id: 虚树
547
+ name: 虚树
548
+ domain: 图论
549
+ parent: 树上问题
550
+ depends: [最近公共祖先]
551
+ tier: normal
552
+ entry: 2600 # 题池 p25(≈入门段位),机器算
553
+ pool: 47 # entry 是拿这么多道题算出来的
554
+
555
+ - id: 上下界网络流
556
+ name: 上下界网络流
557
+ domain: 图论
558
+ parent: 网络流
559
+ depends: [网络流]
560
+ tier: rare
561
+ entry: 2600 # 题池 p25(≈入门段位),机器算
562
+ pool: 13 # entry 是拿这么多道题算出来的
563
+
564
+ - id: 最大流
565
+ name: 最大流
566
+ domain: 图论
567
+ parent: 网络流
568
+ depends: [网络流, 增广路]
569
+ tier: normal
570
+
571
+ - id: 最小割
572
+ name: 最小割
573
+ domain: 图论
574
+ parent: 网络流
575
+ depends: [网络流]
576
+ tier: normal
577
+ entry: 2600 # 题池 p25(≈入门段位),机器算
578
+ pool: 61 # entry 是拿这么多道题算出来的
579
+
580
+ - id: 费用流
581
+ name: 费用流
582
+ domain: 图论
583
+ parent: 网络流
584
+ depends: [网络流]
585
+ tier: normal
586
+ entry: 2000 # 题池 p25(≈入门段位),机器算
587
+ pool: 111 # entry 是拿这么多道题算出来的
588
+
589
+ - id: 割点和桥
590
+ name: 割点和桥
591
+ domain: 图论
592
+ parent: 连通性相关
593
+ depends: [连通性相关, DFS(图论)]
594
+ tier: core
595
+
596
+ - id: 双连通分量
597
+ name: 双连通分量
598
+ domain: 图论
599
+ parent: 连通性相关
600
+ depends: [连通性相关, DFS(图论)]
601
+ tier: core
602
+ entry: 2000 # 题池 p25(≈入门段位),机器算
603
+ pool: 48 # entry 是拿这么多道题算出来的
604
+
605
+ - id: 圆方树
606
+ name: 圆方树
607
+ domain: 图论
608
+ parent: 连通性相关
609
+ depends: [双连通分量]
610
+ tier: rare
611
+ entry: 2600 # 题池 p25(≈入门段位),机器算
612
+ pool: 31 # entry 是拿这么多道题算出来的
613
+
614
+ - id: 强连通分量
615
+ name: 强连通分量
616
+ domain: 图论
617
+ parent: 连通性相关
618
+ depends: [连通性相关, DFS(图论)]
619
+ tier: core
620
+ entry: 1700 # 题池 p25(≈入门段位),机器算
621
+ pool: 71 # entry 是拿这么多道题算出来的
622
+
623
+ - id: 点/边连通度
624
+ name: 点/边连通度
625
+ domain: 图论
626
+ parent: 连通性相关
627
+ depends: [连通性相关]
628
+ tier: rare
629
+
630
+ # ── 字符串 ──
631
+ - id: AC 自动机
632
+ name: AC 自动机
633
+ domain: 字符串
634
+ depends: [字典树 (Trie), 前缀函数与 KMP 算法]
635
+ tier: normal
636
+ entry: 2300 # 题池 p25(≈入门段位),机器算
637
+ pool: 51 # entry 是拿这么多道题算出来的
638
+
639
+ - id: Boyer–Moore 算法
640
+ name: Boyer–Moore 算法
641
+ domain: 字符串
642
+ depends: [字符串匹配]
643
+ tier: skip
644
+
645
+ - id: Lyndon 分解
646
+ name: Lyndon 分解
647
+ domain: 字符串
648
+ depends: [字符串基础]
649
+ tier: rare
650
+
651
+ - id: Main–Lorentz 算法
652
+ name: Main–Lorentz 算法
653
+ domain: 字符串
654
+ depends: [前缀函数与 KMP 算法]
655
+ tier: skip
656
+
657
+ - id: Manacher
658
+ name: Manacher
659
+ domain: 字符串
660
+ depends: [字符串匹配]
661
+ tier: normal
662
+ entry: 1600 # 题池 p25(≈入门段位),机器算
663
+ pool: 21 # entry 是拿这么多道题算出来的
664
+
665
+ - id: Z 函数(扩展 KMP)
666
+ name: Z 函数(扩展 KMP)
667
+ domain: 字符串
668
+ depends: [前缀函数与 KMP 算法]
669
+ tier: normal
670
+
671
+ - id: 前缀函数与 KMP 算法
672
+ name: 前缀函数与 KMP 算法
673
+ domain: 字符串
674
+ depends: [字符串匹配]
675
+ tier: core
676
+
677
+ - id: 后缀平衡树
678
+ name: 后缀平衡树
679
+ domain: 字符串
680
+ depends: [二叉搜索树 & 平衡树]
681
+ tier: skip
682
+
683
+ - id: 后缀数组 (SA)
684
+ name: 后缀数组 (SA)
685
+ domain: 字符串
686
+ depends: [倍增, 基数排序]
687
+ tier: normal
688
+
689
+ - id: 后缀树
690
+ name: 后缀树
691
+ domain: 字符串
692
+ depends: [后缀自动机 (SAM)]
693
+ tier: skip
694
+
695
+ - id: 后缀自动机 (SAM)
696
+ name: 后缀自动机 (SAM)
697
+ domain: 字符串
698
+ depends: [字典树 (Trie), 自动机]
699
+ tier: rare
700
+
701
+ - id: 回文树
702
+ name: 回文树
703
+ domain: 字符串
704
+ depends: [字典树 (Trie)]
705
+ tier: rare
706
+
707
+ - id: 字典树 (Trie)
708
+ name: 字典树 (Trie)
709
+ domain: 字符串
710
+ depends: [字符串基础]
711
+ tier: normal
712
+
713
+ - id: 字符串匹配
714
+ name: 字符串匹配
715
+ domain: 字符串
716
+ depends: [字符串基础]
717
+ tier: normal
718
+
719
+ - id: 字符串哈希
720
+ name: 字符串哈希
721
+ domain: 字符串
722
+ depends: [字符串基础]
723
+ tier: core
724
+
725
+ - id: 字符串基础
726
+ name: 字符串基础
727
+ domain: 字符串
728
+ depends: []
729
+ tier: core
730
+
731
+ - id: 广义后缀自动机
732
+ name: 广义后缀自动机
733
+ domain: 字符串
734
+ depends: [后缀自动机 (SAM)]
735
+ tier: rare
736
+
737
+ - id: 序列自动机
738
+ name: 序列自动机
739
+ domain: 字符串
740
+ depends: [字符串基础]
741
+ tier: rare
742
+
743
+ - id: 最小表示法
744
+ name: 最小表示法
745
+ domain: 字符串
746
+ depends: [字符串基础]
747
+ tier: rare
748
+
749
+ - id: 标准库
750
+ name: 标准库
751
+ domain: 字符串
752
+ depends: [字符串基础]
753
+ tier: skip
754
+
755
+ - id: 自动机
756
+ name: 自动机
757
+ domain: 字符串
758
+ depends: [字符串基础]
759
+ tier: skip
760
+ entry: 2000 # 题池 p25(≈入门段位),机器算
761
+ pool: 233 # entry 是拿这么多道题算出来的
762
+
763
+ - id: 最优原地后缀排序算法
764
+ name: 最优原地后缀排序算法
765
+ domain: 字符串
766
+ parent: 后缀数组 (SA)
767
+ depends: [后缀数组 (SA)]
768
+ tier: skip
769
+
770
+ # ── 搜索 ──
771
+ - id: A*
772
+ name: A*
773
+ domain: 搜索
774
+ depends: [启发式搜索, 二叉堆]
775
+ tier: rare
776
+ entry: 1700 # 题池 p25(≈入门段位),机器算
777
+ pool: 22 # entry 是拿这么多道题算出来的
778
+
779
+ - id: Alpha-Beta 剪枝
780
+ name: Alpha-Beta 剪枝
781
+ domain: 搜索
782
+ depends: [优化]
783
+ tier: skip
784
+
785
+ - id: BFS(搜索)
786
+ name: BFS(搜索)
787
+ domain: 搜索
788
+ depends: [队列]
789
+ tier: core
790
+
791
+ - id: DFS(搜索)
792
+ name: DFS(搜索)
793
+ domain: 搜索
794
+ depends: [递归 & 分治]
795
+ tier: core
796
+
797
+ - id: Dancing Links
798
+ name: Dancing Links
799
+ domain: 搜索
800
+ depends: [DFS(搜索)]
801
+ tier: skip
802
+
803
+ - id: IDA*
804
+ name: IDA*
805
+ domain: 搜索
806
+ depends: [迭代加深搜索, A*]
807
+ tier: rare
808
+ entry: 2000 # 题池 p25(≈入门段位),机器算
809
+ pool: 10 # entry 是拿这么多道题算出来的
810
+
811
+ - id: 优化
812
+ name: 优化
813
+ domain: 搜索
814
+ depends: [DFS(搜索)]
815
+ tier: skip
816
+ entry: 1600 # 题池 p25(≈入门段位),机器算
817
+ pool: 4599 # entry 是拿这么多道题算出来的
818
+
819
+ - id: 双向搜索
820
+ name: 双向搜索
821
+ domain: 搜索
822
+ depends: [BFS(搜索)]
823
+ tier: normal
824
+
825
+ - id: 启发式搜索
826
+ name: 启发式搜索
827
+ domain: 搜索
828
+ depends: [BFS(搜索)]
829
+ tier: rare
830
+ entry: 2000 # 题池 p25(≈入门段位),机器算
831
+ pool: 8 # entry 是拿这么多道题算出来的
832
+
833
+ - id: 回溯法
834
+ name: 回溯法
835
+ domain: 搜索
836
+ depends: [DFS(搜索)]
837
+ tier: normal
838
+
839
+ - id: 迭代加深搜索
840
+ name: 迭代加深搜索
841
+ domain: 搜索
842
+ depends: [DFS(搜索), BFS(搜索)]
843
+ tier: rare
844
+
845
+ # ── 数学 ──
846
+ - id: Berlekamp–Massey 算法
847
+ name: Berlekamp–Massey 算法
848
+ domain: 数学
849
+ depends: [常系数齐次线性递推]
850
+ tier: skip
851
+
852
+ - id: Schreier–Sims 算法
853
+ name: Schreier–Sims 算法
854
+ domain: 数学
855
+ depends: [群论]
856
+ tier: skip
857
+
858
+ - id: 二进制集合操作
859
+ name: 二进制集合操作
860
+ domain: 数学
861
+ depends: [位运算]
862
+ tier: normal
863
+
864
+ - id: 位运算
865
+ name: 位运算
866
+ domain: 数学
867
+ depends: []
868
+ tier: core
869
+ entry: 1500 # 题池 p25(≈入门段位),机器算
870
+ pool: 504 # entry 是拿这么多道题算出来的
871
+
872
+ - id: 傅里叶-莫茨金消元法
873
+ name: 傅里叶-莫茨金消元法
874
+ domain: 数学
875
+ depends: [线性规划]
876
+ tier: skip
877
+
878
+ - id: 博弈论
879
+ name: 博弈论
880
+ domain: 数学
881
+ depends: []
882
+ tier: normal
883
+ entry: 1600 # 题池 p25(≈入门段位),机器算
884
+ pool: 417 # entry 是拿这么多道题算出来的
885
+
886
+ - id: 复数
887
+ name: 复数
888
+ domain: 数学
889
+ depends: []
890
+ tier: rare
891
+
892
+ - id: 多项式与生成函数
893
+ name: 多项式与生成函数
894
+ domain: 数学
895
+ depends: []
896
+ tier: rare
897
+
898
+ - id: 平衡三进制
899
+ name: 平衡三进制
900
+ domain: 数学
901
+ depends: [进位制]
902
+ tier: skip
903
+
904
+ - id: 序理论
905
+ name: 序理论
906
+ domain: 数学
907
+ depends: []
908
+ tier: skip
909
+
910
+ - id: 弧度制与坐标系
911
+ name: 弧度制与坐标系
912
+ domain: 数学
913
+ depends: []
914
+ tier: rare
915
+
916
+ - id: 快速幂
917
+ name: 快速幂
918
+ domain: 数学
919
+ depends: [倍增]
920
+ tier: core
921
+ entry: 1600 # 题池 p25(≈入门段位),机器算
922
+ pool: 350 # entry 是拿这么多道题算出来的
923
+
924
+ - id: 数值算法
925
+ name: 数值算法
926
+ domain: 数学
927
+ depends: []
928
+ tier: skip
929
+
930
+ - id: 数论
931
+ name: 数论
932
+ domain: 数学
933
+ depends: [数论基础]
934
+ tier: normal
935
+ entry: 1600 # 题池 p25(≈入门段位),机器算
936
+ pool: 1130 # entry 是拿这么多道题算出来的
937
+
938
+ - id: 杨氏矩阵
939
+ name: 杨氏矩阵
940
+ domain: 数学
941
+ depends: [排列组合]
942
+ tier: skip
943
+
944
+ - id: 概率论
945
+ name: 概率论
946
+ domain: 数学
947
+ depends: []
948
+ tier: normal
949
+ entry: 2000 # 题池 p25(≈入门段位),机器算
950
+ pool: 95 # entry 是拿这么多道题算出来的
951
+
952
+ - id: 符号
953
+ name: 符号
954
+ domain: 数学
955
+ depends: []
956
+ tier: skip
957
+
958
+ - id: 线性代数
959
+ name: 线性代数
960
+ domain: 数学
961
+ depends: []
962
+ tier: rare
963
+ entry: 1600 # 题池 p25(≈入门段位),机器算
964
+ pool: 267 # entry 是拿这么多道题算出来的
965
+
966
+ - id: 线性规划
967
+ name: 线性规划
968
+ domain: 数学
969
+ depends: []
970
+ tier: skip
971
+ entry: 2600 # 题池 p25(≈入门段位),机器算
972
+ pool: 15 # entry 是拿这么多道题算出来的
973
+
974
+ - id: 组合数学
975
+ name: 组合数学
976
+ domain: 数学
977
+ depends: []
978
+ tier: normal
979
+ entry: 1600 # 题池 p25(≈入门段位),机器算
980
+ pool: 1021 # entry 是拿这么多道题算出来的
981
+
982
+ - id: 置换和排列
983
+ name: 置换和排列
984
+ domain: 数学
985
+ depends: [组合数学]
986
+ tier: rare
987
+
988
+ - id: 群论
989
+ name: 群论
990
+ domain: 数学
991
+ depends: [置换群]
992
+ tier: skip
993
+ entry: 2600 # 题池 p25(≈入门段位),机器算
994
+ pool: 17 # entry 是拿这么多道题算出来的
995
+
996
+ - id: 进位制
997
+ name: 进位制
998
+ domain: 数学
999
+ depends: []
1000
+ tier: normal
1001
+
1002
+ - id: 高精度计算
1003
+ name: 高精度计算
1004
+ domain: 数学
1005
+ depends: [模拟, 字符串基础]
1006
+ tier: normal
1007
+
1008
+ - id: 公平组合游戏
1009
+ name: 公平组合游戏
1010
+ domain: 数学
1011
+ parent: 博弈论
1012
+ depends: [博弈论]
1013
+ tier: normal
1014
+
1015
+ - id: 反常游戏
1016
+ name: 反常游戏
1017
+ domain: 数学
1018
+ parent: 博弈论
1019
+ depends: [公平组合游戏]
1020
+ tier: skip
1021
+
1022
+ - id: 非公平组合游戏
1023
+ name: 非公平组合游戏
1024
+ domain: 数学
1025
+ parent: 博弈论
1026
+ depends: [公平组合游戏]
1027
+ tier: rare
1028
+
1029
+ - id: Chirp Z 变换
1030
+ name: Chirp Z 变换
1031
+ domain: 数学
1032
+ parent: 多项式与生成函数
1033
+ depends: [快速傅里叶变换]
1034
+ tier: skip
1035
+
1036
+ - id: 代数基本定理
1037
+ name: 代数基本定理
1038
+ domain: 数学
1039
+ parent: 多项式与生成函数
1040
+ depends: [复数]
1041
+ tier: skip
1042
+
1043
+ - id: 多项式初等函数
1044
+ name: 多项式初等函数
1045
+ domain: 数学
1046
+ parent: 多项式与生成函数
1047
+ depends: [复数, 多项式与生成函数]
1048
+ tier: skip
1049
+
1050
+ - id: 多项式多点求值|快速插值
1051
+ name: 多项式多点求值|快速插值
1052
+ domain: 数学
1053
+ parent: 多项式与生成函数
1054
+ depends: [多项式与生成函数, 快速傅里叶变换]
1055
+ tier: skip
1056
+
1057
+ - id: 多项式平移|连续点值平移
1058
+ name: 多项式平移|连续点值平移
1059
+ domain: 数学
1060
+ parent: 多项式与生成函数
1061
+ depends: [多项式与生成函数]
1062
+ tier: skip
1063
+
1064
+ - id: 多项式牛顿迭代
1065
+ name: 多项式牛顿迭代
1066
+ domain: 数学
1067
+ parent: 多项式与生成函数
1068
+ depends: [多项式初等函数, 牛顿迭代法]
1069
+ tier: skip
1070
+
1071
+ - id: 常系数齐次线性递推
1072
+ name: 常系数齐次线性递推
1073
+ domain: 数学
1074
+ parent: 多项式与生成函数
1075
+ depends: [矩阵, 快速幂]
1076
+ tier: rare
1077
+
1078
+ - id: 快速傅里叶变换
1079
+ name: 快速傅里叶变换
1080
+ domain: 数学
1081
+ parent: 多项式与生成函数
1082
+ depends: [复数]
1083
+ tier: rare
1084
+ entry: 2400 # 题池 p25(≈入门段位),机器算
1085
+ pool: 196 # entry 是拿这么多道题算出来的
1086
+
1087
+ - id: 快速数论变换
1088
+ name: 快速数论变换
1089
+ domain: 数学
1090
+ parent: 多项式与生成函数
1091
+ depends: [快速傅里叶变换, 原根]
1092
+ tier: rare
1093
+ entry: 2400 # 题池 p25(≈入门段位),机器算
1094
+ pool: 215 # entry 是拿这么多道题算出来的
1095
+
1096
+ - id: 快速沃尔什变换
1097
+ name: 快速沃尔什变换
1098
+ domain: 数学
1099
+ parent: 多项式与生成函数
1100
+ depends: [快速傅里叶变换, 位运算]
1101
+ tier: rare
1102
+ entry: 2400 # 题池 p25(≈入门段位),机器算
1103
+ pool: 116 # entry 是拿这么多道题算出来的
1104
+
1105
+ - id: 指数生成函数
1106
+ name: 指数生成函数
1107
+ domain: 数学
1108
+ parent: 多项式与生成函数
1109
+ depends: [普通生成函数]
1110
+ tier: rare
1111
+
1112
+ - id: 普通生成函数
1113
+ name: 普通生成函数
1114
+ domain: 数学
1115
+ parent: 多项式与生成函数
1116
+ depends: [组合数学]
1117
+ tier: rare
1118
+
1119
+ - id: 狄利克雷生成函数
1120
+ name: 狄利克雷生成函数
1121
+ domain: 数学
1122
+ parent: 多项式与生成函数
1123
+ depends: [普通生成函数, 数论基础]
1124
+ tier: skip
1125
+
1126
+ - id: 符号化方法
1127
+ name: 符号化方法
1128
+ domain: 数学
1129
+ parent: 多项式与生成函数
1130
+ depends: [指数生成函数]
1131
+ tier: skip
1132
+
1133
+ - id: 拉格朗日插值
1134
+ name: 拉格朗日插值
1135
+ domain: 数学
1136
+ parent: 数值算法
1137
+ depends: [多项式与生成函数]
1138
+ tier: rare
1139
+ entry: 2400 # 题池 p25(≈入门段位),机器算
1140
+ pool: 10 # entry 是拿这么多道题算出来的
1141
+
1142
+ - id: 数值积分
1143
+ name: 数值积分
1144
+ domain: 数学
1145
+ parent: 数值算法
1146
+ depends: [数值算法]
1147
+ tier: skip
1148
+
1149
+ - id: 牛顿迭代法
1150
+ name: 牛顿迭代法
1151
+ domain: 数学
1152
+ parent: 数值算法
1153
+ depends: [数值算法]
1154
+ tier: skip
1155
+
1156
+ - id: 高斯消元
1157
+ name: 高斯消元
1158
+ domain: 数学
1159
+ parent: 数值算法
1160
+ depends: [矩阵]
1161
+ tier: normal
1162
+ entry: 2000 # 题池 p25(≈入门段位),机器算
1163
+ pool: 107 # entry 是拿这么多道题算出来的
1164
+
1165
+ - id: Meissel–Lehmer 算法
1166
+ name: Meissel–Lehmer 算法
1167
+ domain: 数学
1168
+ parent: 数论
1169
+ depends: [筛法, 数论分块]
1170
+ tier: skip
1171
+
1172
+ - id: Min_25 筛
1173
+ name: Min_25 筛
1174
+ domain: 数学
1175
+ parent: 数论
1176
+ depends: [筛法, 杜教筛]
1177
+ tier: skip
1178
+
1179
+ - id: Pell 方程
1180
+ name: Pell 方程
1181
+ domain: 数学
1182
+ parent: 数论
1183
+ depends: [连分数, 二次域]
1184
+ tier: skip
1185
+
1186
+ - id: Powerful Number 筛
1187
+ name: Powerful Number 筛
1188
+ domain: 数学
1189
+ parent: 数论
1190
+ depends: [筛法, 莫比乌斯反演]
1191
+ tier: skip
1192
+
1193
+ - id: Stern–Brocot 树与 Farey 序列
1194
+ name: Stern–Brocot 树与 Farey 序列
1195
+ domain: 数学
1196
+ parent: 数论
1197
+ depends: [连分数]
1198
+ tier: skip
1199
+
1200
+ - id: 中国剩余定理
1201
+ name: 中国剩余定理
1202
+ domain: 数学
1203
+ parent: 数论
1204
+ depends: [线性同余方程]
1205
+ tier: normal
1206
+ entry: 1600 # 题池 p25(≈入门段位),机器算
1207
+ pool: 14 # entry 是拿这么多道题算出来的
1208
+
1209
+ - id: 乘法逆元
1210
+ name: 乘法逆元
1211
+ domain: 数学
1212
+ parent: 数论
1213
+ depends: [欧拉定理 & 费马小定理, 线性同余方程]
1214
+ tier: core
1215
+
1216
+ - id: 二次剩余
1217
+ name: 二次剩余
1218
+ domain: 数学
1219
+ parent: 数论
1220
+ depends: [乘法逆元]
1221
+ tier: rare
1222
+ entry: 2600 # 题池 p25(≈入门段位),机器算
1223
+ pool: 8 # entry 是拿这么多道题算出来的
1224
+
1225
+ - id: 二次域
1226
+ name: 二次域
1227
+ domain: 数学
1228
+ parent: 数论
1229
+ depends: [二次剩余]
1230
+ tier: skip
1231
+
1232
+ - id: 分解质因数
1233
+ name: 分解质因数
1234
+ domain: 数学
1235
+ parent: 数论
1236
+ depends: [素数]
1237
+ tier: normal
1238
+
1239
+ - id: 剩余
1240
+ name: 剩余
1241
+ domain: 数学
1242
+ parent: 数论
1243
+ depends: [同余方程]
1244
+ tier: rare
1245
+ entry: 2000 # 题池 p25(≈入门段位),机器算
1246
+ pool: 57 # entry 是拿这么多道题算出来的
1247
+
1248
+ - id: 升幂引理
1249
+ name: 升幂引理
1250
+ domain: 数学
1251
+ parent: 数论
1252
+ depends: [欧拉定理 & 费马小定理]
1253
+ tier: rare
1254
+
1255
+ - id: 卢卡斯定理
1256
+ name: 卢卡斯定理
1257
+ domain: 数学
1258
+ parent: 数论
1259
+ depends: [排列组合, 乘法逆元]
1260
+ tier: normal
1261
+ entry: 2000 # 题池 p25(≈入门段位),机器算
1262
+ pool: 13 # entry 是拿这么多道题算出来的
1263
+
1264
+ - id: 原根
1265
+ name: 原根
1266
+ domain: 数学
1267
+ parent: 数论
1268
+ depends: [欧拉定理 & 费马小定理]
1269
+ tier: rare
1270
+ entry: 2600 # 题池 p25(≈入门段位),机器算
1271
+ pool: 13 # entry 是拿这么多道题算出来的
1272
+
1273
+ - id: 同余方程
1274
+ name: 同余方程
1275
+ domain: 数学
1276
+ parent: 数论
1277
+ depends: [数论基础]
1278
+ tier: normal
1279
+
1280
+ - id: 威尔逊定理
1281
+ name: 威尔逊定理
1282
+ domain: 数学
1283
+ parent: 数论
1284
+ depends: [素数, 同余方程]
1285
+ tier: rare
1286
+
1287
+ - id: 循环连分数
1288
+ name: 循环连分数
1289
+ domain: 数学
1290
+ parent: 数论
1291
+ depends: [连分数]
1292
+ tier: skip
1293
+
1294
+ - id: 数论分块
1295
+ name: 数论分块
1296
+ domain: 数学
1297
+ parent: 数论
1298
+ depends: [数论基础]
1299
+ tier: normal
1300
+
1301
+ - id: 数论基础
1302
+ name: 数论基础
1303
+ domain: 数学
1304
+ parent: 数论
1305
+ depends: []
1306
+ tier: core
1307
+
1308
+ - id: 最大公约数
1309
+ name: 最大公约数
1310
+ domain: 数学
1311
+ parent: 数论
1312
+ depends: [数论基础]
1313
+ tier: core
1314
+ entry: 1500 # 题池 p25(≈入门段位),机器算
1315
+ pool: 114 # entry 是拿这么多道题算出来的
1316
+
1317
+ - id: 杜教筛
1318
+ name: 杜教筛
1319
+ domain: 数学
1320
+ parent: 数论
1321
+ depends: [莫比乌斯反演, 数论分块]
1322
+ tier: rare
1323
+ entry: 2600 # 题池 p25(≈入门段位),机器算
1324
+ pool: 17 # entry 是拿这么多道题算出来的
1325
+
1326
+ - id: 欧拉函数
1327
+ name: 欧拉函数
1328
+ domain: 数学
1329
+ parent: 数论
1330
+ depends: [分解质因数, 同余方程]
1331
+ tier: core
1332
+ entry: 1700 # 题池 p25(≈入门段位),机器算
1333
+ pool: 70 # entry 是拿这么多道题算出来的
1334
+
1335
+ - id: 欧拉定理 & 费马小定理
1336
+ name: 欧拉定理 & 费马小定理
1337
+ domain: 数学
1338
+ parent: 数论
1339
+ depends: [欧拉函数]
1340
+ tier: core
1341
+
1342
+ - id: 洲阁筛
1343
+ name: 洲阁筛
1344
+ domain: 数学
1345
+ parent: 数论
1346
+ depends: [筛法, 莫比乌斯反演]
1347
+ tier: skip
1348
+
1349
+ - id: 离散对数
1350
+ name: 离散对数
1351
+ domain: 数学
1352
+ parent: 数论
1353
+ depends: [原根]
1354
+ tier: rare
1355
+
1356
+ - id: 筛法
1357
+ name: 筛法
1358
+ domain: 数学
1359
+ parent: 数论
1360
+ depends: [素数]
1361
+ tier: core
1362
+ entry: 1600 # 题池 p25(≈入门段位),机器算
1363
+ pool: 116 # entry 是拿这么多道题算出来的
1364
+
1365
+ - id: 类欧几里德算法
1366
+ name: 类欧几里德算法
1367
+ domain: 数学
1368
+ parent: 数论
1369
+ depends: [最大公约数, 数论分块]
1370
+ tier: rare
1371
+
1372
+ - id: 素数
1373
+ name: 素数
1374
+ domain: 数学
1375
+ parent: 数论
1376
+ depends: [数论基础]
1377
+ tier: core
1378
+ entry: 1500 # 题池 p25(≈入门段位),机器算
1379
+ pool: 224 # entry 是拿这么多道题算出来的
1380
+
1381
+ - id: 线性同余方程
1382
+ name: 线性同余方程
1383
+ domain: 数学
1384
+ parent: 数论
1385
+ depends: [最大公约数, 同余方程]
1386
+ tier: normal
1387
+
1388
+ - id: 莫比乌斯反演
1389
+ name: 莫比乌斯反演
1390
+ domain: 数学
1391
+ parent: 数论
1392
+ depends: [容斥原理, 欧拉函数]
1393
+ tier: normal
1394
+ entry: 2000 # 题池 p25(≈入门段位),机器算
1395
+ pool: 131 # entry 是拿这么多道题算出来的
1396
+
1397
+ - id: 裴蜀定理
1398
+ name: 裴蜀定理
1399
+ domain: 数学
1400
+ parent: 数论
1401
+ depends: [最大公约数]
1402
+ tier: core
1403
+
1404
+ - id: 连分数
1405
+ name: 连分数
1406
+ domain: 数学
1407
+ parent: 数论
1408
+ depends: [数论基础]
1409
+ tier: skip
1410
+
1411
+ - id: 基本概念
1412
+ name: 基本概念
1413
+ domain: 数学
1414
+ parent: 概率论
1415
+ depends: [概率论]
1416
+ tier: rare
1417
+
1418
+ - id: 条件概率与独立性
1419
+ name: 条件概率与独立性
1420
+ domain: 数学
1421
+ parent: 概率论
1422
+ depends: [基本概念]
1423
+ tier: rare
1424
+
1425
+ - id: 概率不等式
1426
+ name: 概率不等式
1427
+ domain: 数学
1428
+ parent: 概率论
1429
+ depends: [随机变量]
1430
+ tier: skip
1431
+
1432
+ - id: 随机变量
1433
+ name: 随机变量
1434
+ domain: 数学
1435
+ parent: 概率论
1436
+ depends: [条件概率与独立性]
1437
+ tier: rare
1438
+
1439
+ - id: 随机变量的数字特征
1440
+ name: 随机变量的数字特征
1441
+ domain: 数学
1442
+ parent: 概率论
1443
+ depends: [随机变量]
1444
+ tier: rare
1445
+
1446
+ - id: Jordan标准型
1447
+ name: Jordan标准型
1448
+ domain: 数学
1449
+ parent: 线性代数
1450
+ depends: [对角化]
1451
+ tier: skip
1452
+
1453
+ - id: 内积和外积
1454
+ name: 内积和外积
1455
+ domain: 数学
1456
+ parent: 线性代数
1457
+ depends: [向量]
1458
+ tier: rare
1459
+
1460
+ - id: 初等变换
1461
+ name: 初等变换
1462
+ domain: 数学
1463
+ parent: 线性代数
1464
+ depends: [矩阵]
1465
+ tier: skip
1466
+
1467
+ - id: 向量
1468
+ name: 向量
1469
+ domain: 数学
1470
+ parent: 线性代数
1471
+ depends: []
1472
+ tier: skip
1473
+ entry: 2000 # 题池 p25(≈入门段位),机器算
1474
+ pool: 31 # entry 是拿这么多道题算出来的
1475
+
1476
+ - id: 对角化
1477
+ name: 对角化
1478
+ domain: 数学
1479
+ parent: 线性代数
1480
+ depends: [特征多项式]
1481
+ tier: skip
1482
+
1483
+ - id: 特征多项式
1484
+ name: 特征多项式
1485
+ domain: 数学
1486
+ parent: 线性代数
1487
+ depends: [行列式, 线性映射]
1488
+ tier: skip
1489
+
1490
+ - id: 矩阵
1491
+ name: 矩阵
1492
+ domain: 数学
1493
+ parent: 线性代数
1494
+ depends: [线性代数]
1495
+ tier: core
1496
+ entry: 1700 # 题池 p25(≈入门段位),机器算
1497
+ pool: 333 # entry 是拿这么多道题算出来的
1498
+
1499
+ - id: 线性基
1500
+ name: 线性基
1501
+ domain: 数学
1502
+ parent: 线性代数
1503
+ depends: [位运算]
1504
+ tier: normal
1505
+ entry: 2000 # 题池 p25(≈入门段位),机器算
1506
+ pool: 79 # entry 是拿这么多道题算出来的
1507
+
1508
+ - id: 线性映射
1509
+ name: 线性映射
1510
+ domain: 数学
1511
+ parent: 线性代数
1512
+ depends: [线性空间]
1513
+ tier: skip
1514
+
1515
+ - id: 线性空间
1516
+ name: 线性空间
1517
+ domain: 数学
1518
+ parent: 线性代数
1519
+ depends: [向量]
1520
+ tier: skip
1521
+
1522
+ - id: 行列式
1523
+ name: 行列式
1524
+ domain: 数学
1525
+ parent: 线性代数
1526
+ depends: [初等变换]
1527
+ tier: rare
1528
+ entry: 2600 # 题池 p25(≈入门段位),机器算
1529
+ pool: 9 # entry 是拿这么多道题算出来的
1530
+
1531
+ - id: 单纯形算法
1532
+ name: 单纯形算法
1533
+ domain: 数学
1534
+ parent: 线性规划
1535
+ depends: [矩阵]
1536
+ tier: skip
1537
+
1538
+ - id: Entringer Number
1539
+ name: Entringer Number
1540
+ domain: 数学
1541
+ parent: 组合数学
1542
+ depends: [排列组合]
1543
+ tier: skip
1544
+
1545
+ - id: Eulerian Number
1546
+ name: Eulerian Number
1547
+ domain: 数学
1548
+ parent: 组合数学
1549
+ depends: [排列组合]
1550
+ tier: skip
1551
+
1552
+ - id: 伯努利数
1553
+ name: 伯努利数
1554
+ domain: 数学
1555
+ parent: 组合数学
1556
+ depends: [指数生成函数]
1557
+ tier: skip
1558
+
1559
+ - id: 分拆数
1560
+ name: 分拆数
1561
+ domain: 数学
1562
+ parent: 组合数学
1563
+ depends: [排列组合]
1564
+ tier: rare
1565
+
1566
+ - id: 卡特兰数
1567
+ name: 卡特兰数
1568
+ domain: 数学
1569
+ parent: 组合数学
1570
+ depends: [排列组合]
1571
+ tier: normal
1572
+ entry: 1600 # 题池 p25(≈入门段位),机器算
1573
+ pool: 13 # entry 是拿这么多道题算出来的
1574
+
1575
+ - id: 图论计数
1576
+ name: 图论计数
1577
+ domain: 数学
1578
+ parent: 组合数学
1579
+ depends: [组合数学, Prüfer 序列]
1580
+ tier: rare
1581
+
1582
+ - id: 容斥原理
1583
+ name: 容斥原理
1584
+ domain: 数学
1585
+ parent: 组合数学
1586
+ depends: [排列组合]
1587
+ tier: core
1588
+ entry: 2000 # 题池 p25(≈入门段位),机器算
1589
+ pool: 224 # entry 是拿这么多道题算出来的
1590
+
1591
+ - id: 康托展开
1592
+ name: 康托展开
1593
+ domain: 数学
1594
+ parent: 组合数学
1595
+ depends: [排列组合]
1596
+ tier: normal
1597
+ entry: 1700 # 题池 p25(≈入门段位),机器算
1598
+ pool: 8 # entry 是拿这么多道题算出来的
1599
+
1600
+ - id: 抽屉原理
1601
+ name: 抽屉原理
1602
+ domain: 数学
1603
+ parent: 组合数学
1604
+ depends: [组合数学]
1605
+ tier: normal
1606
+
1607
+ - id: 排列组合
1608
+ name: 排列组合
1609
+ domain: 数学
1610
+ parent: 组合数学
1611
+ depends: [组合数学]
1612
+ tier: core
1613
+ entry: 1600 # 题池 p25(≈入门段位),机器算
1614
+ pool: 249 # entry 是拿这么多道题算出来的
1615
+
1616
+ - id: 斐波那契数列
1617
+ name: 斐波那契数列
1618
+ domain: 数学
1619
+ parent: 组合数学
1620
+ depends: [组合数学]
1621
+ tier: normal
1622
+
1623
+ - id: 斯特林数
1624
+ name: 斯特林数
1625
+ domain: 数学
1626
+ parent: 组合数学
1627
+ depends: [容斥原理]
1628
+ tier: normal
1629
+ entry: 2400 # 题池 p25(≈入门段位),机器算
1630
+ pool: 9 # entry 是拿这么多道题算出来的
1631
+
1632
+ - id: 范德蒙德卷积
1633
+ name: 范德蒙德卷积
1634
+ domain: 数学
1635
+ parent: 组合数学
1636
+ depends: [排列组合]
1637
+ tier: rare
1638
+
1639
+ - id: 贝尔数
1640
+ name: 贝尔数
1641
+ domain: 数学
1642
+ parent: 组合数学
1643
+ depends: [斯特林数]
1644
+ tier: rare
1645
+
1646
+ - id: 错位排列
1647
+ name: 错位排列
1648
+ domain: 数学
1649
+ parent: 组合数学
1650
+ depends: [容斥原理]
1651
+ tier: rare
1652
+
1653
+ - id: 置换群
1654
+ name: 置换群
1655
+ domain: 数学
1656
+ parent: 群论
1657
+ depends: [置换和排列]
1658
+ tier: rare
1659
+ entry: 2400 # 题池 p25(≈入门段位),机器算
1660
+ pool: 13 # entry 是拿这么多道题算出来的
1661
+
1662
+ # ── 数据结构 ──
1663
+ - id: K-D Tree
1664
+ name: K-D Tree
1665
+ domain: 数据结构
1666
+ depends: [线段树]
1667
+ tier: rare
1668
+ entry: 2600 # 题池 p25(≈入门段位),机器算
1669
+ pool: 23 # entry 是拿这么多道题算出来的
1670
+
1671
+ - id: PQ 树
1672
+ name: PQ 树
1673
+ domain: 数据结构
1674
+ depends: []
1675
+ tier: skip
1676
+
1677
+ - id: ST 表
1678
+ name: ST 表
1679
+ domain: 数据结构
1680
+ depends: [倍增]
1681
+ tier: core
1682
+ entry: 1700 # 题池 p25(≈入门段位),机器算
1683
+ pool: 126 # entry 是拿这么多道题算出来的
1684
+
1685
+ - id: 二叉搜索树 & 平衡树
1686
+ name: 二叉搜索树 & 平衡树
1687
+ domain: 数据结构
1688
+ depends: [递归 & 分治]
1689
+ tier: normal
1690
+
1691
+ - id: 划分树
1692
+ name: 划分树
1693
+ domain: 数据结构
1694
+ depends: [线段树]
1695
+ tier: rare
1696
+
1697
+ - id: 动态树
1698
+ name: 动态树
1699
+ domain: 数据结构
1700
+ depends: [Splay 树]
1701
+ tier: rare
1702
+ entry: 2400 # 题池 p25(≈入门段位),机器算
1703
+ pool: 113 # entry 是拿这么多道题算出来的
1704
+
1705
+ - id: 区间最值操作 & 区间历史最值
1706
+ name: 区间最值操作 & 区间历史最值
1707
+ domain: 数据结构
1708
+ depends: [线段树]
1709
+ tier: rare
1710
+
1711
+ - id: 单调栈
1712
+ name: 单调栈
1713
+ domain: 数据结构
1714
+ depends: [栈]
1715
+ tier: core
1716
+ entry: 1700 # 题池 p25(≈入门段位),机器算
1717
+ pool: 133 # entry 是拿这么多道题算出来的
1718
+
1719
+ - id: 单调队列
1720
+ name: 单调队列
1721
+ domain: 数据结构
1722
+ depends: [队列]
1723
+ tier: core
1724
+ entry: 1700 # 题池 p25(≈入门段位),机器算
1725
+ pool: 147 # entry 是拿这么多道题算出来的
1726
+
1727
+ - id: 可持久化数据结构
1728
+ name: 可持久化数据结构
1729
+ domain: 数据结构
1730
+ depends: [线段树]
1731
+ tier: normal
1732
+ entry: 2000 # 题池 p25(≈入门段位),机器算
1733
+ pool: 36 # entry 是拿这么多道题算出来的
1734
+
1735
+ - id: 哈希表
1736
+ name: 哈希表
1737
+ domain: 数据结构
1738
+ depends: [链表]
1739
+ tier: core
1740
+ entry: 1500 # 题池 p25(≈入门段位),机器算
1741
+ pool: 23 # entry 是拿这么多道题算出来的
1742
+
1743
+ - id: 块状数据结构
1744
+ name: 块状数据结构
1745
+ domain: 数据结构
1746
+ depends: [前缀和 & 差分]
1747
+ tier: normal
1748
+
1749
+ - id: 堆
1750
+ name: 堆
1751
+ domain: 数据结构
1752
+ depends: []
1753
+ tier: core
1754
+ entry: 1500 # 题池 p25(≈入门段位),机器算
1755
+ pool: 126 # entry 是拿这么多道题算出来的
1756
+
1757
+ - id: 并查集
1758
+ name: 并查集
1759
+ domain: 数据结构
1760
+ depends: []
1761
+ tier: core
1762
+ entry: 1600 # 题池 p25(≈入门段位),机器算
1763
+ pool: 640 # entry 是拿这么多道题算出来的
1764
+
1765
+ - id: 手指树
1766
+ name: 手指树
1767
+ domain: 数据结构
1768
+ depends: [链表]
1769
+ tier: skip
1770
+
1771
+ - id: 李超线段树
1772
+ name: 李超线段树
1773
+ domain: 数据结构
1774
+ depends: [线段树]
1775
+ tier: normal
1776
+ entry: 2600 # 题池 p25(≈入门段位),机器算
1777
+ pool: 38 # entry 是拿这么多道题算出来的
1778
+
1779
+ - id: 析合树
1780
+ name: 析合树
1781
+ domain: 数据结构
1782
+ depends: [单调栈]
1783
+ tier: skip
1784
+
1785
+ - id: 栈
1786
+ name: 栈
1787
+ domain: 数据结构
1788
+ depends: []
1789
+ tier: core
1790
+ entry: 1500 # 题池 p25(≈入门段位),机器算
1791
+ pool: 290 # entry 是拿这么多道题算出来的
1792
+
1793
+ - id: 树套树
1794
+ name: 树套树
1795
+ domain: 数据结构
1796
+ depends: [线段树]
1797
+ tier: rare
1798
+ entry: 2300 # 题池 p25(≈入门段位),机器算
1799
+ pool: 46 # entry 是拿这么多道题算出来的
1800
+
1801
+ - id: 树状数组
1802
+ name: 树状数组
1803
+ domain: 数据结构
1804
+ depends: [前缀和 & 差分, 倍增]
1805
+ tier: core
1806
+ entry: 1700 # 题池 p25(≈入门段位),机器算
1807
+ pool: 667 # entry 是拿这么多道题算出来的
1808
+
1809
+ - id: 线段树
1810
+ name: 线段树
1811
+ domain: 数据结构
1812
+ depends: [递归 & 分治]
1813
+ tier: core
1814
+ entry: 2000 # 题池 p25(≈入门段位),机器算
1815
+ pool: 1563 # entry 是拿这么多道题算出来的
1816
+
1817
+ - id: 跳表
1818
+ name: 跳表
1819
+ domain: 数据结构
1820
+ depends: [链表]
1821
+ tier: skip
1822
+
1823
+ - id: 链表
1824
+ name: 链表
1825
+ domain: 数据结构
1826
+ depends: []
1827
+ tier: core
1828
+ entry: 1500 # 题池 p25(≈入门段位),机器算
1829
+ pool: 76 # entry 是拿这么多道题算出来的
1830
+
1831
+ - id: 队列
1832
+ name: 队列
1833
+ domain: 数据结构
1834
+ depends: []
1835
+ tier: core
1836
+ entry: 1500 # 题池 p25(≈入门段位),机器算
1837
+ pool: 290 # entry 是拿这么多道题算出来的
1838
+
1839
+ - id: 霍夫曼树
1840
+ name: 霍夫曼树
1841
+ domain: 数据结构
1842
+ depends: [二叉堆]
1843
+ tier: rare
1844
+
1845
+ - id: 2-3 树
1846
+ name: 2-3 树
1847
+ domain: 数据结构
1848
+ parent: 二叉搜索树 & 平衡树
1849
+ depends: [二叉搜索树 & 平衡树]
1850
+ tier: skip
1851
+
1852
+ - id: AA 树
1853
+ name: AA 树
1854
+ domain: 数据结构
1855
+ parent: 二叉搜索树 & 平衡树
1856
+ depends: [二叉搜索树 & 平衡树]
1857
+ tier: skip
1858
+
1859
+ - id: AVL 树
1860
+ name: AVL 树
1861
+ domain: 数据结构
1862
+ parent: 二叉搜索树 & 平衡树
1863
+ depends: [二叉搜索树 & 平衡树]
1864
+ tier: skip
1865
+
1866
+ - id: B 树
1867
+ name: B 树
1868
+ domain: 数据结构
1869
+ parent: 二叉搜索树 & 平衡树
1870
+ depends: [二叉搜索树 & 平衡树]
1871
+ tier: skip
1872
+
1873
+ - id: B+ 树
1874
+ name: B+ 树
1875
+ domain: 数据结构
1876
+ parent: 二叉搜索树 & 平衡树
1877
+ depends: [B 树]
1878
+ tier: skip
1879
+
1880
+ - id: Leafy Tree
1881
+ name: Leafy Tree
1882
+ domain: 数据结构
1883
+ parent: 二叉搜索树 & 平衡树
1884
+ depends: [二叉搜索树 & 平衡树]
1885
+ tier: skip
1886
+
1887
+ - id: Size Balanced Tree
1888
+ name: Size Balanced Tree
1889
+ domain: 数据结构
1890
+ parent: 二叉搜索树 & 平衡树
1891
+ depends: [二叉搜索树 & 平衡树]
1892
+ tier: skip
1893
+
1894
+ - id: Splay 树
1895
+ name: Splay 树
1896
+ domain: 数据结构
1897
+ parent: 二叉搜索树 & 平衡树
1898
+ depends: [二叉搜索树 & 平衡树]
1899
+ tier: normal
1900
+
1901
+ - id: Treap
1902
+ name: Treap
1903
+ domain: 数据结构
1904
+ parent: 二叉搜索树 & 平衡树
1905
+ depends: [二叉搜索树 & 平衡树, 二叉堆]
1906
+ tier: normal
1907
+
1908
+ - id: WBLT
1909
+ name: WBLT
1910
+ domain: 数据结构
1911
+ parent: 二叉搜索树 & 平衡树
1912
+ depends: [二叉搜索树 & 平衡树]
1913
+ tier: skip
1914
+
1915
+ - id: 左偏红黑树
1916
+ name: 左偏红黑树
1917
+ domain: 数据结构
1918
+ parent: 二叉搜索树 & 平衡树
1919
+ depends: [红黑树]
1920
+ tier: skip
1921
+
1922
+ - id: 替罪羊树
1923
+ name: 替罪羊树
1924
+ domain: 数据结构
1925
+ parent: 二叉搜索树 & 平衡树
1926
+ depends: [二叉搜索树 & 平衡树]
1927
+ tier: skip
1928
+
1929
+ - id: 笛卡尔树
1930
+ name: 笛卡尔树
1931
+ domain: 数据结构
1932
+ parent: 二叉搜索树 & 平衡树
1933
+ depends: [二叉搜索树 & 平衡树, 单调栈]
1934
+ tier: rare
1935
+ entry: 2000 # 题池 p25(≈入门段位),机器算
1936
+ pool: 44 # entry 是拿这么多道题算出来的
1937
+
1938
+ - id: 红黑树
1939
+ name: 红黑树
1940
+ domain: 数据结构
1941
+ parent: 二叉搜索树 & 平衡树
1942
+ depends: [二叉搜索树 & 平衡树]
1943
+ tier: skip
1944
+
1945
+ - id: Euler Tour Tree
1946
+ name: Euler Tour Tree
1947
+ domain: 数据结构
1948
+ parent: 动态树
1949
+ depends: [动态树]
1950
+ tier: skip
1951
+
1952
+ - id: Link Cut Tree
1953
+ name: Link Cut Tree
1954
+ domain: 数据结构
1955
+ parent: 动态树
1956
+ depends: [动态树]
1957
+ tier: rare
1958
+
1959
+ - id: Top Tree
1960
+ name: Top Tree
1961
+ domain: 数据结构
1962
+ parent: 动态树
1963
+ depends: [Link Cut Tree]
1964
+ tier: skip
1965
+
1966
+ - id: 可持久化可并堆
1967
+ name: 可持久化可并堆
1968
+ domain: 数据结构
1969
+ parent: 可持久化数据结构
1970
+ depends: [可持久化数据结构, 左偏树]
1971
+ tier: rare
1972
+
1973
+ - id: 可持久化块状数组
1974
+ name: 可持久化块状数组
1975
+ domain: 数据结构
1976
+ parent: 可持久化数据结构
1977
+ depends: [可持久化数据结构, 块状数组]
1978
+ tier: rare
1979
+
1980
+ - id: 可持久化字典树
1981
+ name: 可持久化字典树
1982
+ domain: 数据结构
1983
+ parent: 可持久化数据结构
1984
+ depends: [可持久化数据结构, 字典树 (Trie)]
1985
+ tier: rare
1986
+
1987
+ - id: 可持久化平衡树
1988
+ name: 可持久化平衡树
1989
+ domain: 数据结构
1990
+ parent: 可持久化数据结构
1991
+ depends: [可持久化数据结构, 二叉搜索树 & 平衡树]
1992
+ tier: rare
1993
+
1994
+ - id: 可持久化线段树
1995
+ name: 可持久化线段树
1996
+ domain: 数据结构
1997
+ parent: 可持久化数据结构
1998
+ depends: [线段树]
1999
+ tier: normal
2000
+ entry: 2000 # 题池 p25(≈入门段位),机器算
2001
+ pool: 140 # entry 是拿这么多道题算出来的
2002
+
2003
+ - id: Sqrt Tree
2004
+ name: Sqrt Tree
2005
+ domain: 数据结构
2006
+ parent: 块状数据结构
2007
+ depends: [分块思想]
2008
+ tier: skip
2009
+
2010
+ - id: 分块思想
2011
+ name: 分块思想
2012
+ domain: 数据结构
2013
+ parent: 块状数据结构
2014
+ depends: [前缀和 & 差分]
2015
+ tier: normal
2016
+
2017
+ - id: 块状数组
2018
+ name: 块状数组
2019
+ domain: 数据结构
2020
+ parent: 块状数据结构
2021
+ depends: [分块思想]
2022
+ tier: normal
2023
+
2024
+ - id: 块状链表
2025
+ name: 块状链表
2026
+ domain: 数据结构
2027
+ parent: 块状数据结构
2028
+ depends: [分块思想, 链表]
2029
+ tier: rare
2030
+
2031
+ - id: 树分块
2032
+ name: 树分块
2033
+ domain: 数据结构
2034
+ parent: 块状数据结构
2035
+ depends: [分块思想]
2036
+ tier: rare
2037
+
2038
+ - id: 二叉堆
2039
+ name: 二叉堆
2040
+ domain: 数据结构
2041
+ parent: 堆
2042
+ depends: [堆]
2043
+ tier: core
2044
+
2045
+ - id: 左偏树
2046
+ name: 左偏树
2047
+ domain: 数据结构
2048
+ parent: 堆
2049
+ depends: [二叉堆]
2050
+ tier: rare
2051
+
2052
+ - id: 配对堆
2053
+ name: 配对堆
2054
+ domain: 数据结构
2055
+ parent: 堆
2056
+ depends: [二叉堆]
2057
+ tier: skip
2058
+
2059
+ - id: 并查集复杂度
2060
+ name: 并查集复杂度
2061
+ domain: 数据结构
2062
+ parent: 并查集
2063
+ depends: [并查集]
2064
+ tier: skip
2065
+
2066
+ - id: 分块套树状数组
2067
+ name: 分块套树状数组
2068
+ domain: 数据结构
2069
+ parent: 树套树
2070
+ depends: [树套树, 分块思想]
2071
+ tier: skip
2072
+
2073
+ - id: 平衡树套线段树
2074
+ name: 平衡树套线段树
2075
+ domain: 数据结构
2076
+ parent: 树套树
2077
+ depends: [树套树, 二叉搜索树 & 平衡树]
2078
+ tier: skip
2079
+
2080
+ - id: 树状数组套权值线段树
2081
+ name: 树状数组套权值线段树
2082
+ domain: 数据结构
2083
+ parent: 树套树
2084
+ depends: [树套树, 树状数组]
2085
+ tier: rare
2086
+
2087
+ - id: 线段树套平衡树
2088
+ name: 线段树套平衡树
2089
+ domain: 数据结构
2090
+ parent: 树套树
2091
+ depends: [树套树, 二叉搜索树 & 平衡树]
2092
+ tier: rare
2093
+
2094
+ - id: 线段树套线段树
2095
+ name: 线段树套线段树
2096
+ domain: 数据结构
2097
+ parent: 树套树
2098
+ depends: [树套树]
2099
+ tier: rare
2100
+
2101
+ # ── 杂项 ──
2102
+ - id: 15-puzzle
2103
+ name: 15-puzzle
2104
+ domain: 杂项
2105
+ depends: [BFS(搜索)]
2106
+ tier: skip
2107
+
2108
+ - id: Garsia–Wachs 算法
2109
+ name: Garsia–Wachs 算法
2110
+ domain: 杂项
2111
+ depends: [二叉堆]
2112
+ tier: skip
2113
+
2114
+ - id: Kahan 求和
2115
+ name: Kahan 求和
2116
+ domain: 杂项
2117
+ depends: [模拟, 复杂度]
2118
+ tier: skip
2119
+
2120
+ - id: 主元素问题
2121
+ name: 主元素问题
2122
+ domain: 杂项
2123
+ depends: [枚举]
2124
+ tier: rare
2125
+
2126
+ - id: 分数规划
2127
+ name: 分数规划
2128
+ domain: 杂项
2129
+ depends: [二分]
2130
+ tier: normal
2131
+ entry: 2000 # 题池 p25(≈入门段位),机器算
2132
+ pool: 28 # entry 是拿这么多道题算出来的
2133
+
2134
+ - id: 双指针
2135
+ name: 双指针
2136
+ domain: 杂项
2137
+ depends: [枚举]
2138
+ tier: core
2139
+ entry: 1200 # 题池 p25(≈入门段位),机器算
2140
+ pool: 11 # entry 是拿这么多道题算出来的
2141
+
2142
+ - id: 在一台机器上规划任务
2143
+ name: 在一台机器上规划任务
2144
+ domain: 杂项
2145
+ depends: [贪心]
2146
+ tier: skip
2147
+
2148
+ - id: 字节顺序
2149
+ name: 字节顺序
2150
+ domain: 杂项
2151
+ depends: [位运算]
2152
+ tier: rare
2153
+
2154
+ - id: 悬线法
2155
+ name: 悬线法
2156
+ domain: 杂项
2157
+ depends: [前缀和 & 差分]
2158
+ tier: normal
2159
+
2160
+ - id: 格雷码
2161
+ name: 格雷码
2162
+ domain: 杂项
2163
+ depends: [位运算]
2164
+ tier: rare
2165
+
2166
+ - id: 珂朵莉树/颜色段均摊
2167
+ name: 珂朵莉树/颜色段均摊
2168
+ domain: 杂项
2169
+ depends: [分块思想, 线段树]
2170
+ tier: rare
2171
+
2172
+ - id: 离散化
2173
+ name: 离散化
2174
+ domain: 杂项
2175
+ depends: [排序]
2176
+ tier: core
2177
+ entry: 1600 # 题池 p25(≈入门段位),机器算
2178
+ pool: 277 # entry 是拿这么多道题算出来的
2179
+
2180
+ - id: 离线算法
2181
+ name: 离线算法
2182
+ domain: 杂项
2183
+ depends: [排序]
2184
+ tier: normal
2185
+
2186
+ - id: 约瑟夫问题
2187
+ name: 约瑟夫问题
2188
+ domain: 杂项
2189
+ depends: [模拟]
2190
+ tier: rare
2191
+
2192
+ - id: 表达式求值
2193
+ name: 表达式求值
2194
+ domain: 杂项
2195
+ depends: [栈]
2196
+ tier: normal
2197
+
2198
+ - id: 计算理论基础
2199
+ name: 计算理论基础
2200
+ domain: 杂项
2201
+ depends: []
2202
+ tier: skip
2203
+
2204
+ - id: 随机化
2205
+ name: 随机化
2206
+ domain: 杂项
2207
+ depends: [概率论]
2208
+ tier: rare
2209
+ entry: 2000 # 题池 p25(≈入门段位),机器算
2210
+ pool: 98 # entry 是拿这么多道题算出来的
2211
+
2212
+ - id: CDQ 分治
2213
+ name: CDQ 分治
2214
+ domain: 杂项
2215
+ parent: 离线算法
2216
+ depends: [递归 & 分治, 排序]
2217
+ tier: normal
2218
+
2219
+ - id: 整体二分
2220
+ name: 整体二分
2221
+ domain: 杂项
2222
+ parent: 离线算法
2223
+ depends: [二分]
2224
+ tier: normal
2225
+ entry: 2300 # 题池 p25(≈入门段位),机器算
2226
+ pool: 44 # entry 是拿这么多道题算出来的
2227
+
2228
+ - id: 莫队算法
2229
+ name: 莫队算法
2230
+ domain: 杂项
2231
+ parent: 离线算法
2232
+ depends: [分块思想, 排序]
2233
+ tier: normal
2234
+
2235
+ - id: 模拟退火
2236
+ name: 模拟退火
2237
+ domain: 杂项
2238
+ parent: 随机化
2239
+ depends: [随机化]
2240
+ tier: rare
2241
+ entry: 2000 # 题池 p25(≈入门段位),机器算
2242
+ pool: 40 # entry 是拿这么多道题算出来的
2243
+
2244
+ - id: 爬山算法
2245
+ name: 爬山算法
2246
+ domain: 杂项
2247
+ parent: 随机化
2248
+ depends: [随机化]
2249
+ tier: skip
2250
+
2251
+ - id: 随机函数
2252
+ name: 随机函数
2253
+ domain: 杂项
2254
+ parent: 随机化
2255
+ depends: [随机化]
2256
+ tier: rare
2257
+
2258
+ - id: 随机化技巧
2259
+ name: 随机化技巧
2260
+ domain: 杂项
2261
+ parent: 随机化
2262
+ depends: [随机化]
2263
+ tier: normal
2264
+
2265
+ # ── 算法基础 ──
2266
+ - id: 二分
2267
+ name: 二分
2268
+ domain: 算法基础
2269
+ depends: [排序, 复杂度]
2270
+ tier: core
2271
+ entry: 1600 # 题池 p25(≈入门段位),机器算
2272
+ pool: 1470 # entry 是拿这么多道题算出来的
2273
+
2274
+ - id: 倍增
2275
+ name: 倍增
2276
+ domain: 算法基础
2277
+ depends: [二分]
2278
+ tier: core
2279
+ entry: 2000 # 题池 p25(≈入门段位),机器算
2280
+ pool: 285 # entry 是拿这么多道题算出来的
2281
+
2282
+ - id: 前缀和 & 差分
2283
+ name: 前缀和 & 差分
2284
+ domain: 算法基础
2285
+ depends: [枚举]
2286
+ tier: core
2287
+
2288
+ - id: 复杂度
2289
+ name: 复杂度
2290
+ domain: 算法基础
2291
+ depends: []
2292
+ tier: core
2293
+
2294
+ - id: 排序
2295
+ name: 排序
2296
+ domain: 算法基础
2297
+ depends: []
2298
+ tier: core
2299
+ entry: 1200 # 题池 p25(≈入门段位),机器算
2300
+ pool: 1160 # entry 是拿这么多道题算出来的
2301
+
2302
+ - id: 构造
2303
+ name: 构造
2304
+ domain: 算法基础
2305
+ depends: [枚举]
2306
+ tier: core
2307
+ entry: 1500 # 题池 p25(≈入门段位),机器算
2308
+ pool: 972 # entry 是拿这么多道题算出来的
2309
+
2310
+ - id: 枚举
2311
+ name: 枚举
2312
+ domain: 算法基础
2313
+ depends: []
2314
+ tier: core
2315
+ entry: 1200 # 题池 p25(≈入门段位),机器算
2316
+ pool: 2952 # entry 是拿这么多道题算出来的
2317
+
2318
+ - id: 模拟
2319
+ name: 模拟
2320
+ domain: 算法基础
2321
+ depends: []
2322
+ tier: core
2323
+ entry: 800 # 题池 p25(≈入门段位),机器算
2324
+ pool: 2791 # entry 是拿这么多道题算出来的
2325
+
2326
+ - id: 贪心
2327
+ name: 贪心
2328
+ domain: 算法基础
2329
+ depends: [排序]
2330
+ tier: core
2331
+ entry: 1300 # 题池 p25(≈入门段位),机器算
2332
+ pool: 2852 # entry 是拿这么多道题算出来的
2333
+
2334
+ - id: 递归 & 分治
2335
+ name: 递归 & 分治
2336
+ domain: 算法基础
2337
+ depends: []
2338
+ tier: core
2339
+
2340
+ - id: tim排序
2341
+ name: tim排序
2342
+ domain: 算法基础
2343
+ parent: 排序
2344
+ depends: [归并排序, 插入排序]
2345
+ tier: skip
2346
+
2347
+ - id: 冒泡排序
2348
+ name: 冒泡排序
2349
+ domain: 算法基础
2350
+ parent: 排序
2351
+ depends: [排序]
2352
+ tier: skip
2353
+
2354
+ - id: 基数排序
2355
+ name: 基数排序
2356
+ domain: 算法基础
2357
+ parent: 排序
2358
+ depends: [计数排序]
2359
+ tier: rare
2360
+
2361
+ - id: 堆排序
2362
+ name: 堆排序
2363
+ domain: 算法基础
2364
+ parent: 排序
2365
+ depends: [二叉堆]
2366
+ tier: skip
2367
+
2368
+ - id: 希尔排序
2369
+ name: 希尔排序
2370
+ domain: 算法基础
2371
+ parent: 排序
2372
+ depends: [插入排序]
2373
+ tier: skip
2374
+
2375
+ - id: 归并排序
2376
+ name: 归并排序
2377
+ domain: 算法基础
2378
+ parent: 排序
2379
+ depends: [递归 & 分治]
2380
+ tier: normal
2381
+
2382
+ - id: 快速排序
2383
+ name: 快速排序
2384
+ domain: 算法基础
2385
+ parent: 排序
2386
+ depends: [递归 & 分治]
2387
+ tier: normal
2388
+
2389
+ - id: 排序应用
2390
+ name: 排序应用
2391
+ domain: 算法基础
2392
+ parent: 排序
2393
+ depends: [排序]
2394
+ tier: normal
2395
+
2396
+ - id: 排序相关 STL
2397
+ name: 排序相关 STL
2398
+ domain: 算法基础
2399
+ parent: 排序
2400
+ depends: [排序]
2401
+ tier: core
2402
+
2403
+ - id: 插入排序
2404
+ name: 插入排序
2405
+ domain: 算法基础
2406
+ parent: 排序
2407
+ depends: [排序]
2408
+ tier: skip
2409
+
2410
+ - id: 桶排序
2411
+ name: 桶排序
2412
+ domain: 算法基础
2413
+ parent: 排序
2414
+ depends: [计数排序]
2415
+ tier: skip
2416
+
2417
+ - id: 计数排序
2418
+ name: 计数排序
2419
+ domain: 算法基础
2420
+ parent: 排序
2421
+ depends: [排序]
2422
+ tier: rare
2423
+
2424
+ - id: 选择排序
2425
+ name: 选择排序
2426
+ domain: 算法基础
2427
+ parent: 排序
2428
+ depends: [排序]
2429
+ tier: skip
2430
+
2431
+ - id: 锦标赛排序
2432
+ name: 锦标赛排序
2433
+ domain: 算法基础
2434
+ parent: 排序
2435
+ depends: [排序]
2436
+ tier: skip
2437
+
2438
+ # ── 计算几何 ──
2439
+ - id: Pick 定理
2440
+ name: Pick 定理
2441
+ domain: 计算几何
2442
+ depends: [二维计算几何基础]
2443
+ tier: rare
2444
+
2445
+ - id: 三维计算几何基础
2446
+ name: 三维计算几何基础
2447
+ domain: 计算几何
2448
+ depends: [向量]
2449
+ tier: skip
2450
+
2451
+ - id: 三角剖分
2452
+ name: 三角剖分
2453
+ domain: 计算几何
2454
+ depends: [二维计算几何基础]
2455
+ tier: skip
2456
+
2457
+ - id: 二维计算几何基础
2458
+ name: 二维计算几何基础
2459
+ domain: 计算几何
2460
+ depends: [向量, 弧度制与坐标系]
2461
+ tier: normal
2462
+
2463
+ - id: 凸包
2464
+ name: 凸包
2465
+ domain: 计算几何
2466
+ depends: [二维计算几何基础]
2467
+ tier: normal
2468
+ entry: 2000 # 题池 p25(≈入门段位),机器算
2469
+ pool: 152 # entry 是拿这么多道题算出来的
2470
+
2471
+ - id: 半平面交
2472
+ name: 半平面交
2473
+ domain: 计算几何
2474
+ depends: [二维计算几何基础]
2475
+ tier: rare
2476
+ entry: 2400 # 题池 p25(≈入门段位),机器算
2477
+ pool: 27 # entry 是拿这么多道题算出来的
2478
+
2479
+ - id: 反演变换
2480
+ name: 反演变换
2481
+ domain: 计算几何
2482
+ depends: [二维计算几何基础]
2483
+ tier: skip
2484
+
2485
+ - id: 平面最近点对
2486
+ name: 平面最近点对
2487
+ domain: 计算几何
2488
+ depends: [二维计算几何基础]
2489
+ tier: rare
2490
+
2491
+ - id: 扫描线
2492
+ name: 扫描线
2493
+ domain: 计算几何
2494
+ depends: [二维计算几何基础]
2495
+ tier: normal
2496
+ entry: 2000 # 题池 p25(≈入门段位),机器算
2497
+ pool: 264 # entry 是拿这么多道题算出来的
2498
+
2499
+ - id: 旋转卡壳
2500
+ name: 旋转卡壳
2501
+ domain: 计算几何
2502
+ depends: [凸包]
2503
+ tier: rare
2504
+ entry: 2600 # 题池 p25(≈入门段位),机器算
2505
+ pool: 11 # entry 是拿这么多道题算出来的
2506
+
2507
+ - id: 计算几何杂项
2508
+ name: 计算几何杂项
2509
+ domain: 计算几何
2510
+ depends: [二维计算几何基础]
2511
+ tier: normal
2512
+
2513
+ - id: 距离
2514
+ name: 距离
2515
+ domain: 计算几何
2516
+ depends: [二维计算几何基础]
2517
+ tier: normal
2518
+
2519
+ - id: 随机增量法
2520
+ name: 随机增量法
2521
+ domain: 计算几何
2522
+ depends: [随机化]
2523
+ tier: rare
2524
+
2525
+ parallel_branches:
2526
+ - a: 树状数组
2527
+ b: 线段树
2528
+ note: 区间维护的两条独立路线,走通一条即可
2529
+ - a: 块状数据结构
2530
+ b: 线段树
2531
+ note: 分块是线段树的朴素退路,学不动时可先走分块
2532
+ - a: Treap
2533
+ b: Splay 树
2534
+ note: 平衡树任选一种写熟即可,另一种按需补
2535
+ - a: 后缀数组 (SA)
2536
+ b: 后缀自动机 (SAM)
2537
+ note: 字符串难题的两条路线,先走通一条
2538
+ - a: 单调队列/单调栈优化
2539
+ b: 线段树
2540
+ note: 都是优化 DP 转移的手段