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.
- package/LICENSE +28 -0
- package/README.md +258 -0
- package/assets/extension/luogu/README.md +104 -0
- package/assets/extension/luogu/content.js +137 -0
- package/assets/extension/luogu/manifest.json +22 -0
- package/assets/knowledge/DEPENDS.yaml +391 -0
- package/assets/knowledge/LICENSE +41 -0
- package/assets/knowledge/MAP.yaml +2540 -0
- package/assets/knowledge/NODE_ENTRY.yaml +465 -0
- package/assets/knowledge/NODE_META.yaml +457 -0
- package/assets/knowledge/skilltree.html +1702 -0
- package/assets/oiwiki/LICENSE +49 -0
- package/assets/oiwiki/chunks.jsonl +2177 -0
- package/assets/oiwiki/node-pages.json +1208 -0
- package/assets/pool/LICENSE +83 -0
- package/assets/pool/problems.jsonl.gz +0 -0
- package/assets/rules/coach-rules.md +425 -0
- package/build-node-meta.mjs +98 -0
- package/coach/analyze_map.py +138 -0
- package/coach/build_map.py +230 -0
- package/coach/build_node_pages.py +105 -0
- package/coach/check_page_syntax.mjs +48 -0
- package/coach/coach-metrics.py +313 -0
- package/coach/export_oiwiki_chunks.py +100 -0
- package/coach/export_problem_pool.py +64 -0
- package/coach/extract_oiwiki.py +110 -0
- package/coach/oiwiki_tree.json +2987 -0
- package/coach/render_map.py +226 -0
- package/coach/render_skilltree.py +197 -0
- package/coach/serve_map.py +181 -0
- package/coach/skilltree_template.html +1702 -0
- package/coach/validate_map.py +184 -0
- package/coach/verify_drag.mjs +51 -0
- package/coach/verify_interact.mjs +82 -0
- package/coach/verify_serve.py +138 -0
- package/cordis.patch.yml +10 -0
- package/dev/parity-check.mjs +169 -0
- package/dev/run-all.sh +70 -0
- package/dev/setup-check.mjs +191 -0
- package/dev/w1-check.mjs +170 -0
- package/dev/wiki-check.mjs +100 -0
- package/dev.sh +142 -0
- package/docs//350/256/276/350/256/241/346/226/271/351/222/210.md +325 -0
- package/index.js +5820 -0
- package/lib/client.js +209 -0
- package/lib/setup.js +455 -0
- package/package.json +33 -0
- package/progress-cli.mjs +67 -0
- package/verify-shape.mjs +315 -0
- package/verify.mjs +3535 -0
|
@@ -0,0 +1,457 @@
|
|
|
1
|
+
# ══════════════════════════════════════════════════════════════
|
|
2
|
+
# NODE_META.yaml —— 知识点标注 · **人维护的源文件**
|
|
3
|
+
#
|
|
4
|
+
# 这份文件回答地图回答不了的那个问题:
|
|
5
|
+
# 地图说「谁是谁的前置」 → **允许**学什么
|
|
6
|
+
# 这份说「这知识点重不重要」→ **该不该**学
|
|
7
|
+
#
|
|
8
|
+
# 两者都满足,才轮到"现在学不学得起"(那个是机器算的,见 NODE_ENTRY.yaml)。
|
|
9
|
+
#
|
|
10
|
+
# ══ 判定标准 ══════════════════════════════════════════════════
|
|
11
|
+
#
|
|
12
|
+
# 校准目标:**ICPC 区域赛稳定拿牌**(远期 WF 领奖台)。
|
|
13
|
+
# 不是"CF 上分需要什么"——这两者的侧重不一样,见下面的差异记录。
|
|
14
|
+
# 校准对象:**全能型选手**,不针对特定队伍角色做特化。
|
|
15
|
+
# ⚠️ 这是**默认校准**。你的目标不一样(比如只想稳过区域赛签到)就该自己改这份文件
|
|
16
|
+
# —— 它本来就是人维护的源文件,改成你自己的判断是对的用法。
|
|
17
|
+
#
|
|
18
|
+
# core 区域赛签到到中档题的主力。不会它,题就读不懂或做不出来。
|
|
19
|
+
# normal 常见,值得学。但不决定成败——少一个不至于崩。
|
|
20
|
+
# rare 偶见,或只在特定题型里用得上。时间紧张时靠后。
|
|
21
|
+
# skip ICPC 区域赛基本不考(OI 特有 / 纯理论 / 库已代劳的实现细节)。
|
|
22
|
+
#
|
|
23
|
+
# ══ 依据来源(按可信度) ══════════════════════════════════════
|
|
24
|
+
#
|
|
25
|
+
# 1. 粗粒度考频共识(多方一致,但**都没有挂数据**——是共识不是证据):
|
|
26
|
+
# DP、图论最高 / 数据结构、贪心、构造、模拟次之
|
|
27
|
+
# 基础算法是支撑 / 字符串、计算几何、高级数论靠后
|
|
28
|
+
# 2. 论文 [Finding Winning Patterns in ICPC data](Utrecht,1342 道区域赛+WF 真题
|
|
29
|
+
# 2012-2018,专家标注 9 类)。可引用的结论只有一条:**data structures 类
|
|
30
|
+
# 与其它类差异最显著**。细分占比拿不到(原始页面 403)。
|
|
31
|
+
# 3. Halim《Competitive Programming》Table 1.1「近年 ICPC 亚洲区域赛题型」,
|
|
32
|
+
# 作者是 ICPC Asia 赛事总监——这批来源里唯一有执业资格的。内容没抓到。
|
|
33
|
+
# 4. 本机题库算出的**入门段位**(NODE_ENTRY.yaml,可复现)——用来校验:
|
|
34
|
+
# 一个标 core 的知识点如果入门段位 2600,那它对初学者不是 core 是 rare。
|
|
35
|
+
#
|
|
36
|
+
# ⚠️ 不存在官方 ICPC 考纲。World Finals 技术文档只规定编程环境(语言/文件/沙箱)。
|
|
37
|
+
# ⚠️ 网上被转得最多的《2025 亚洲区域赛算法类型分布统计》经核实**通篇没有数字**,
|
|
38
|
+
# 是个人经验帖冒充统计,不作为依据。
|
|
39
|
+
#
|
|
40
|
+
# ══ CF 路线 vs ICPC 路线的差异(校准目标的由来)══════════════
|
|
41
|
+
#
|
|
42
|
+
# · CF:个人赛,2 小时 7 题,Div 分级,预测试+hack,重**观察和数学**
|
|
43
|
+
# · ICPC:3 人 1 机,5 小时 8-13 题,罚时制,重**综合与实现**
|
|
44
|
+
# · 赛区差异极大:欧洲重算法数学(有时超 WF),美国重模拟代码量,亚洲居中
|
|
45
|
+
#
|
|
46
|
+
# 落到具体:**数据结构类在亚洲区域赛比在 CF 上更重要**(CF 的 "Chinese-ness"
|
|
47
|
+
# 不如亚洲赛区明显)。所以本文件在数据结构和实现细节上,比 CF 路线图给得更高。
|
|
48
|
+
#
|
|
49
|
+
# ══ 写法约定 ═════════════════════════════════════════════════
|
|
50
|
+
#
|
|
51
|
+
# · 只写 `tier`。**偏离同域默认的**才加 `why` —— 那些正是该人工复核的。
|
|
52
|
+
# · 每个域名在 group_defaults 里给一个默认 tier,节点没写的继承它。
|
|
53
|
+
# · 节点名必须与 MAP.yaml 逐字相同(build_map.py 按名字合并,对不上会报错)。
|
|
54
|
+
# ══════════════════════════════════════════════════════════════
|
|
55
|
+
|
|
56
|
+
meta:
|
|
57
|
+
version: 1
|
|
58
|
+
authored: 2026-09-13
|
|
59
|
+
target: ICPC 区域赛稳定拿牌(远期 WF)
|
|
60
|
+
persona: 全能手(不做队伍角色特化)
|
|
61
|
+
|
|
62
|
+
group_defaults:
|
|
63
|
+
算法基础: normal
|
|
64
|
+
动态规划: normal
|
|
65
|
+
图论: normal
|
|
66
|
+
数据结构: normal
|
|
67
|
+
数学: rare
|
|
68
|
+
字符串: rare
|
|
69
|
+
计算几何: rare
|
|
70
|
+
搜索: rare
|
|
71
|
+
杂项: normal
|
|
72
|
+
专题: normal
|
|
73
|
+
|
|
74
|
+
nodes:
|
|
75
|
+
# ══ 算法基础 ══════════════════════════════════════════════
|
|
76
|
+
# 全部是"支撑",但支撑的性质不同:模拟/枚举/贪心/二分/构造是**天天的活**,
|
|
77
|
+
# 排序家族里除快排归并外都是库已代劳的实现细节。
|
|
78
|
+
模拟: { tier: core }
|
|
79
|
+
枚举: { tier: core }
|
|
80
|
+
贪心: { tier: core, why: "共识列为高频;也是 CF 与区域赛重合度最高的板块之一" }
|
|
81
|
+
构造: { tier: core, why: "共识高频;区域赛签到/中档题主力" }
|
|
82
|
+
二分: { tier: core }
|
|
83
|
+
排序: { tier: core }
|
|
84
|
+
前缀和 & 差分: { tier: core }
|
|
85
|
+
递归 & 分治: { tier: core }
|
|
86
|
+
倍增: { tier: core }
|
|
87
|
+
复杂度: { tier: core, why: "不会算复杂度等于不会判断解法能不能过" }
|
|
88
|
+
排序相关 STL: { tier: core }
|
|
89
|
+
快速排序: { tier: normal, why: "库已代劳,但要懂分治思想" }
|
|
90
|
+
归并排序: { tier: normal, why: "库已代劳,但归并思想是 CDQ 分治的基础" }
|
|
91
|
+
排序应用: { tier: normal }
|
|
92
|
+
计数排序: { tier: rare }
|
|
93
|
+
冒泡排序: { tier: skip }
|
|
94
|
+
插入排序: { tier: skip }
|
|
95
|
+
选择排序: { tier: skip }
|
|
96
|
+
希尔排序: { tier: skip }
|
|
97
|
+
堆排序: { tier: skip }
|
|
98
|
+
桶排序: { tier: skip }
|
|
99
|
+
基数排序: { tier: rare }
|
|
100
|
+
tim排序: { tier: skip }
|
|
101
|
+
锦标赛排序: { tier: skip }
|
|
102
|
+
|
|
103
|
+
# ══ 动态规划 ══════════════════════════════════════════════
|
|
104
|
+
# 共识「最高频核心考点」,但**要注意 cfRating**:dp 的 p25 只有 1800。
|
|
105
|
+
# 高频 ≠ 早学。基础那批 core,优化那批是"会用得上但不决定成败"。
|
|
106
|
+
动态规划基础: { tier: core }
|
|
107
|
+
背包 DP: { tier: core }
|
|
108
|
+
区间 DP: { tier: core }
|
|
109
|
+
树形 DP: { tier: core }
|
|
110
|
+
状压 DP: { tier: core }
|
|
111
|
+
数位 DP: { tier: core, why: "区域赛数位 DP 出现稳定,且是入门级数论型 DP" }
|
|
112
|
+
记忆化搜索: { tier: core }
|
|
113
|
+
计数 DP: { tier: normal }
|
|
114
|
+
概率 DP: { tier: normal }
|
|
115
|
+
DAG 上的 DP: { tier: normal }
|
|
116
|
+
动态 DP: { tier: rare }
|
|
117
|
+
插头 DP: { tier: rare, why: "只在棋盘覆盖类特定题型出现" }
|
|
118
|
+
其它 DP 方法: { tier: rare }
|
|
119
|
+
状态设计优化: { tier: normal }
|
|
120
|
+
DP 优化: { tier: normal }
|
|
121
|
+
单调队列/单调栈优化: { tier: normal, why: "入门段位 1700,是 DP 优化里最该先拿下的" }
|
|
122
|
+
斜率优化: { tier: normal, why: "入门段位 2300,超出入门水平一档,但区域赛反复出现" }
|
|
123
|
+
四边形不等式优化: { tier: rare }
|
|
124
|
+
|
|
125
|
+
# ══ 图论 ══════════════════════════════════════════════════
|
|
126
|
+
# 共识「次高频、覆盖最全面」。基础全是 core;高阶匹配/特殊图 rare。
|
|
127
|
+
图的存储: { tier: core }
|
|
128
|
+
图论相关概念: { tier: core }
|
|
129
|
+
BFS(图论): { tier: core }
|
|
130
|
+
DFS(图论): { tier: core }
|
|
131
|
+
拓扑排序: { tier: core }
|
|
132
|
+
连通性相关: { tier: core }
|
|
133
|
+
最短路: { tier: core }
|
|
134
|
+
最小生成树: { tier: core }
|
|
135
|
+
最近公共祖先: { tier: core }
|
|
136
|
+
二分图: { tier: core }
|
|
137
|
+
树的直径: { tier: core }
|
|
138
|
+
树的重心: { tier: core }
|
|
139
|
+
树基础: { tier: core }
|
|
140
|
+
强连通分量: { tier: core }
|
|
141
|
+
割点和桥: { tier: core }
|
|
142
|
+
双连通分量: { tier: core }
|
|
143
|
+
有向无环图: { tier: core }
|
|
144
|
+
欧拉图: { tier: normal }
|
|
145
|
+
差分约束: { tier: normal }
|
|
146
|
+
2-SAT: { tier: normal, why: "区域赛偶见,且是「条件→图」建模的经典套路" }
|
|
147
|
+
网络流: { tier: normal, why: "整体标 normal 不标 core:区域赛出现,但不做签到题" }
|
|
148
|
+
最大流: { tier: normal, why: "网络流的主干,Dinic 模板必须写熟" }
|
|
149
|
+
最小割: { tier: normal }
|
|
150
|
+
费用流: { tier: normal }
|
|
151
|
+
二分图最大匹配: { tier: normal }
|
|
152
|
+
树链剖分: { tier: normal, why: "入门段位 2000,亚洲区域赛数据结构题常客" }
|
|
153
|
+
树分治: { tier: normal }
|
|
154
|
+
树上启发式合并: { tier: normal }
|
|
155
|
+
虚树: { tier: normal }
|
|
156
|
+
树哈希: { tier: normal }
|
|
157
|
+
Prüfer 序列: { tier: normal }
|
|
158
|
+
增广路: { tier: normal }
|
|
159
|
+
最小环: { tier: rare }
|
|
160
|
+
上下界网络流: { tier: rare }
|
|
161
|
+
二分图最大权匹配: { tier: rare }
|
|
162
|
+
一般图最大匹配: { tier: rare }
|
|
163
|
+
一般图最大权匹配: { tier: rare }
|
|
164
|
+
图匹配: { tier: rare }
|
|
165
|
+
支配树: { tier: rare }
|
|
166
|
+
最小树形图: { tier: rare }
|
|
167
|
+
最小直径生成树: { tier: rare }
|
|
168
|
+
斯坦纳树: { tier: rare }
|
|
169
|
+
k 短路: { tier: rare }
|
|
170
|
+
同余最短路: { tier: rare }
|
|
171
|
+
最大团搜索算法: { tier: rare }
|
|
172
|
+
Stoer–Wagner 算法: { tier: rare }
|
|
173
|
+
矩阵树定理: { tier: rare }
|
|
174
|
+
LGV 引理: { tier: rare }
|
|
175
|
+
平面图: { tier: rare }
|
|
176
|
+
弦图: { tier: rare }
|
|
177
|
+
哈密顿图: { tier: rare }
|
|
178
|
+
图的着色: { tier: rare }
|
|
179
|
+
图的匹配: { tier: rare }
|
|
180
|
+
圆方树: { tier: rare }
|
|
181
|
+
图上随机游走: { tier: rare }
|
|
182
|
+
树上随机游走: { tier: rare }
|
|
183
|
+
动态树分治: { tier: rare }
|
|
184
|
+
拆点: { tier: normal, why: "网络流建模的基本功,不是独立知识点" }
|
|
185
|
+
环计数问题: { tier: rare }
|
|
186
|
+
点/边连通度: { tier: rare }
|
|
187
|
+
AHU 算法: { tier: skip }
|
|
188
|
+
树上问题: { tier: skip, why: "这是分类抽屉不是知识点——MAP.yaml 头部已注明 parent 不参与依赖" }
|
|
189
|
+
|
|
190
|
+
# ══ 数据结构 ══════════════════════════════════════════════
|
|
191
|
+
# 论文明确「data structures 类与其它类差异最显著」+ 亚洲区域赛吃这个。
|
|
192
|
+
# 但**平衡树家族要狠狠往下压**——除 Treap/Splay 外,区域赛基本用不到,
|
|
193
|
+
# 实现了也是靠库或模板,不是"学会"。
|
|
194
|
+
栈: { tier: core }
|
|
195
|
+
队列: { tier: core }
|
|
196
|
+
链表: { tier: core }
|
|
197
|
+
堆: { tier: core }
|
|
198
|
+
二叉堆: { tier: core }
|
|
199
|
+
并查集: { tier: core }
|
|
200
|
+
哈希表: { tier: core }
|
|
201
|
+
ST 表: { tier: core }
|
|
202
|
+
单调栈: { tier: core }
|
|
203
|
+
单调队列: { tier: core }
|
|
204
|
+
树状数组: { tier: core }
|
|
205
|
+
线段树: { tier: core }
|
|
206
|
+
分块思想: { tier: normal }
|
|
207
|
+
块状数据结构: { tier: normal }
|
|
208
|
+
块状数组: { tier: normal }
|
|
209
|
+
块状链表: { tier: rare }
|
|
210
|
+
树分块: { tier: rare }
|
|
211
|
+
二叉搜索树 & 平衡树: { tier: normal }
|
|
212
|
+
Treap: { tier: normal, why: "平衡树里最该先写熟的一种,可当 set 增强用" }
|
|
213
|
+
Splay 树: { tier: normal, why: "LCT 的前置;本身在区域赛也有出现" }
|
|
214
|
+
可持久化数据结构: { tier: normal }
|
|
215
|
+
可持久化线段树: { tier: normal, why: "主席树,亚洲区域赛常客;入门段位 2600 但那是最难题的门槛" }
|
|
216
|
+
李超线段树: { tier: normal, why: "斜率优化的替代品,写起来更省事,区域赛会用" }
|
|
217
|
+
动态树: { tier: rare }
|
|
218
|
+
Link Cut Tree: { tier: rare, why: "LCT 在区域赛属于「会了加分不会也没事」档,且实现成本极高" }
|
|
219
|
+
Euler Tour Tree: { tier: skip }
|
|
220
|
+
Top Tree: { tier: skip }
|
|
221
|
+
可持久化平衡树: { tier: rare }
|
|
222
|
+
可持久化字典树: { tier: rare }
|
|
223
|
+
可持久化可并堆: { tier: rare }
|
|
224
|
+
可持久化块状数组: { tier: rare }
|
|
225
|
+
树套树: { tier: rare }
|
|
226
|
+
线段树套线段树: { tier: rare }
|
|
227
|
+
线段树套平衡树: { tier: rare }
|
|
228
|
+
树状数组套权值线段树: { tier: rare }
|
|
229
|
+
平衡树套线段树: { tier: skip }
|
|
230
|
+
分块套树状数组: { tier: skip }
|
|
231
|
+
区间最值操作 & 区间历史最值: { tier: rare }
|
|
232
|
+
划分树: { tier: rare }
|
|
233
|
+
K-D Tree: { tier: rare }
|
|
234
|
+
Sqrt Tree: { tier: skip }
|
|
235
|
+
析合树: { tier: skip }
|
|
236
|
+
PQ 树: { tier: skip }
|
|
237
|
+
霍夫曼树: { tier: rare }
|
|
238
|
+
左偏树: { tier: rare }
|
|
239
|
+
配对堆: { tier: skip }
|
|
240
|
+
跳表: { tier: skip }
|
|
241
|
+
手指树: { tier: skip }
|
|
242
|
+
并查集复杂度: { tier: skip }
|
|
243
|
+
AVL 树: { tier: skip }
|
|
244
|
+
红黑树: { tier: skip }
|
|
245
|
+
左偏红黑树: { tier: skip }
|
|
246
|
+
AA 树: { tier: skip }
|
|
247
|
+
2-3 树: { tier: skip }
|
|
248
|
+
B 树: { tier: skip }
|
|
249
|
+
B+ 树: { tier: skip }
|
|
250
|
+
替罪羊树: { tier: skip }
|
|
251
|
+
Size Balanced Tree: { tier: skip }
|
|
252
|
+
Leafy Tree: { tier: skip }
|
|
253
|
+
WBLT: { tier: skip }
|
|
254
|
+
笛卡尔树: { tier: rare }
|
|
255
|
+
|
|
256
|
+
# ══ 数学 ══════════════════════════════════════════════════
|
|
257
|
+
# 这个域最大(110 个)也最杂。数论基础/组合基础是 core,
|
|
258
|
+
# 多项式家族和纯理论(线性空间、群论、数值算法)大面积 skip。
|
|
259
|
+
基本概念: { tier: rare, why: "OI-wiki 的抽屉节点,内容散,当数论基础的补充看" }
|
|
260
|
+
位运算: { tier: core }
|
|
261
|
+
快速幂: { tier: core }
|
|
262
|
+
最大公约数: { tier: core }
|
|
263
|
+
素数: { tier: core }
|
|
264
|
+
筛法: { tier: core }
|
|
265
|
+
数论基础: { tier: core }
|
|
266
|
+
乘法逆元: { tier: core }
|
|
267
|
+
欧拉函数: { tier: core }
|
|
268
|
+
欧拉定理 & 费马小定理: { tier: core }
|
|
269
|
+
裴蜀定理: { tier: core }
|
|
270
|
+
排列组合: { tier: core }
|
|
271
|
+
容斥原理: { tier: core }
|
|
272
|
+
高精度计算: { tier: normal, why: "区域赛直接考得少,但大数题绕不开" }
|
|
273
|
+
数论: { tier: normal }
|
|
274
|
+
中国剩余定理: { tier: normal }
|
|
275
|
+
卢卡斯定理: { tier: normal }
|
|
276
|
+
数论分块: { tier: normal }
|
|
277
|
+
同余方程: { tier: normal }
|
|
278
|
+
线性同余方程: { tier: normal }
|
|
279
|
+
分解质因数: { tier: normal }
|
|
280
|
+
卡特兰数: { tier: normal }
|
|
281
|
+
斯特林数: { tier: normal }
|
|
282
|
+
抽屉原理: { tier: normal }
|
|
283
|
+
斐波那契数列: { tier: normal }
|
|
284
|
+
矩阵: { tier: core, why: "矩阵快速幂是区域赛常考的加速手段" }
|
|
285
|
+
高斯消元: { tier: normal }
|
|
286
|
+
线性基: { tier: normal, why: "异或类题的标准工具,区域赛稳定出现" }
|
|
287
|
+
博弈论: { tier: normal }
|
|
288
|
+
公平组合游戏: { tier: normal }
|
|
289
|
+
概率论: { tier: normal }
|
|
290
|
+
随机变量: { tier: rare }
|
|
291
|
+
随机变量的数字特征: { tier: rare }
|
|
292
|
+
条件概率与独立性: { tier: rare }
|
|
293
|
+
概率不等式: { tier: skip }
|
|
294
|
+
组合数学: { tier: normal }
|
|
295
|
+
康托展开: { tier: normal }
|
|
296
|
+
范德蒙德卷积: { tier: rare }
|
|
297
|
+
贝尔数: { tier: rare }
|
|
298
|
+
错位排列: { tier: rare }
|
|
299
|
+
分拆数: { tier: rare }
|
|
300
|
+
Eulerian Number: { tier: skip }
|
|
301
|
+
Entringer Number: { tier: skip }
|
|
302
|
+
伯努利数: { tier: skip }
|
|
303
|
+
图论计数: { tier: rare }
|
|
304
|
+
置换和排列: { tier: rare }
|
|
305
|
+
置换群: { tier: rare }
|
|
306
|
+
群论: { tier: skip }
|
|
307
|
+
莫比乌斯反演: { tier: normal }
|
|
308
|
+
杜教筛: { tier: rare }
|
|
309
|
+
Min_25 筛: { tier: skip }
|
|
310
|
+
洲阁筛: { tier: skip }
|
|
311
|
+
Powerful Number 筛: { tier: skip }
|
|
312
|
+
Meissel–Lehmer 算法: { tier: skip }
|
|
313
|
+
二次剩余: { tier: rare }
|
|
314
|
+
原根: { tier: rare }
|
|
315
|
+
离散对数: { tier: rare }
|
|
316
|
+
类欧几里德算法: { tier: rare }
|
|
317
|
+
升幂引理: { tier: rare }
|
|
318
|
+
威尔逊定理: { tier: rare }
|
|
319
|
+
二次域: { tier: skip }
|
|
320
|
+
剩余: { tier: rare }
|
|
321
|
+
Pell 方程: { tier: skip }
|
|
322
|
+
Stern–Brocot 树与 Farey 序列: { tier: skip }
|
|
323
|
+
循环连分数: { tier: skip }
|
|
324
|
+
连分数: { tier: skip }
|
|
325
|
+
多项式与生成函数: { tier: rare }
|
|
326
|
+
快速傅里叶变换: { tier: rare, why: "CF 上 fft 的 p25 是 2500;区域赛偶现,但入门成本高" }
|
|
327
|
+
快速数论变换: { tier: rare }
|
|
328
|
+
快速沃尔什变换: { tier: rare }
|
|
329
|
+
普通生成函数: { tier: rare }
|
|
330
|
+
指数生成函数: { tier: rare }
|
|
331
|
+
狄利克雷生成函数: { tier: skip }
|
|
332
|
+
符号化方法: { tier: skip }
|
|
333
|
+
多项式初等函数: { tier: skip }
|
|
334
|
+
多项式多点求值|快速插值: { tier: skip }
|
|
335
|
+
多项式平移|连续点值平移: { tier: skip }
|
|
336
|
+
多项式牛顿迭代: { tier: skip }
|
|
337
|
+
常系数齐次线性递推: { tier: rare }
|
|
338
|
+
Chirp Z 变换: { tier: skip }
|
|
339
|
+
拉格朗日插值: { tier: rare }
|
|
340
|
+
线性代数: { tier: rare }
|
|
341
|
+
线性空间: { tier: skip }
|
|
342
|
+
线性映射: { tier: skip }
|
|
343
|
+
向量: { tier: skip }
|
|
344
|
+
内积和外积: { tier: rare }
|
|
345
|
+
行列式: { tier: rare }
|
|
346
|
+
初等变换: { tier: skip }
|
|
347
|
+
对角化: { tier: skip }
|
|
348
|
+
特征多项式: { tier: skip }
|
|
349
|
+
Jordan标准型: { tier: skip }
|
|
350
|
+
线性规划: { tier: skip }
|
|
351
|
+
单纯形算法: { tier: skip }
|
|
352
|
+
数值算法: { tier: skip }
|
|
353
|
+
数值积分: { tier: skip }
|
|
354
|
+
牛顿迭代法: { tier: skip }
|
|
355
|
+
二进制集合操作: { tier: normal }
|
|
356
|
+
进位制: { tier: normal }
|
|
357
|
+
平衡三进制: { tier: skip }
|
|
358
|
+
复数: { tier: rare, why: "只在 FFT 里真正用到" }
|
|
359
|
+
弧度制与坐标系: { tier: rare }
|
|
360
|
+
符号: { tier: skip }
|
|
361
|
+
序理论: { tier: skip }
|
|
362
|
+
杨氏矩阵: { tier: skip }
|
|
363
|
+
代数基本定理: { tier: skip }
|
|
364
|
+
反常游戏: { tier: skip }
|
|
365
|
+
非公平组合游戏: { tier: rare }
|
|
366
|
+
傅里叶-莫茨金消元法: { tier: skip }
|
|
367
|
+
Berlekamp–Massey 算法: { tier: skip }
|
|
368
|
+
Schreier–Sims 算法: { tier: skip }
|
|
369
|
+
|
|
370
|
+
# ══ 字符串 ══════════════════════════════════════════════
|
|
371
|
+
# 共识「中频,匹配与自动机为主」。基础哈希/KMP 是 core,自动机以上 rare。
|
|
372
|
+
字符串基础: { tier: core }
|
|
373
|
+
字符串哈希: { tier: core, why: "区域赛字符串题的万能钥匙,性价比极高" }
|
|
374
|
+
前缀函数与 KMP 算法: { tier: core }
|
|
375
|
+
字典树 (Trie): { tier: normal }
|
|
376
|
+
字符串匹配: { tier: normal }
|
|
377
|
+
Z 函数(扩展 KMP): { tier: normal }
|
|
378
|
+
Manacher: { tier: normal }
|
|
379
|
+
AC 自动机: { tier: normal, why: "多模式串匹配的标准解法,区域赛出现过" }
|
|
380
|
+
后缀数组 (SA): { tier: normal }
|
|
381
|
+
后缀自动机 (SAM): { tier: rare }
|
|
382
|
+
广义后缀自动机: { tier: rare }
|
|
383
|
+
回文树: { tier: rare }
|
|
384
|
+
后缀树: { tier: skip }
|
|
385
|
+
后缀平衡树: { tier: skip }
|
|
386
|
+
Lyndon 分解: { tier: rare }
|
|
387
|
+
Main–Lorentz 算法: { tier: skip }
|
|
388
|
+
Boyer–Moore 算法: { tier: skip }
|
|
389
|
+
序列自动机: { tier: rare }
|
|
390
|
+
自动机: { tier: skip }
|
|
391
|
+
最小表示法: { tier: rare }
|
|
392
|
+
最优原地后缀排序算法: { tier: skip }
|
|
393
|
+
标准库: { tier: skip, why: "这是分类抽屉不是知识点" }
|
|
394
|
+
|
|
395
|
+
# ══ 计算几何 ══════════════════════════════════════════════
|
|
396
|
+
# 来源打架:一份说"区域赛常出现但选手因精度问题避开",另一份列为中频。
|
|
397
|
+
# 取前者——常出现且难,所以是 normal 到 rare,不是 skip。
|
|
398
|
+
# ⚠️ 这一组是我按判断拍的,不是来源直接说的,复核时优先看这里。
|
|
399
|
+
二维计算几何基础: { tier: normal }
|
|
400
|
+
凸包: { tier: normal }
|
|
401
|
+
距离: { tier: normal }
|
|
402
|
+
计算几何杂项: { tier: normal }
|
|
403
|
+
扫描线: { tier: normal, why: "扫描线是计算几何+数据结构的交叉点,区域赛常考" }
|
|
404
|
+
平面最近点对: { tier: rare }
|
|
405
|
+
旋转卡壳: { tier: rare }
|
|
406
|
+
半平面交: { tier: rare }
|
|
407
|
+
三角剖分: { tier: skip }
|
|
408
|
+
三维计算几何基础: { tier: skip }
|
|
409
|
+
反演变换: { tier: skip }
|
|
410
|
+
随机增量法: { tier: rare }
|
|
411
|
+
Pick 定理: { tier: rare }
|
|
412
|
+
|
|
413
|
+
# ══ 搜索 ══════════════════════════════════════════════
|
|
414
|
+
# ICPC 全部测试点必须过(不像 CF 有部分分),所以剪枝比 OI 更重要。
|
|
415
|
+
DFS(搜索): { tier: core }
|
|
416
|
+
BFS(搜索): { tier: core }
|
|
417
|
+
回溯法: { tier: normal }
|
|
418
|
+
双向搜索: { tier: normal }
|
|
419
|
+
迭代加深搜索: { tier: rare }
|
|
420
|
+
A*: { tier: rare }
|
|
421
|
+
IDA*: { tier: rare }
|
|
422
|
+
启发式搜索: { tier: rare }
|
|
423
|
+
Dancing Links: { tier: skip }
|
|
424
|
+
Alpha-Beta 剪枝: { tier: skip }
|
|
425
|
+
优化: { tier: skip, why: "OI-wiki 的抽屉节点,不是独立知识点" }
|
|
426
|
+
|
|
427
|
+
# ══ 杂项 ══════════════════════════════════════════════
|
|
428
|
+
双指针: { tier: core }
|
|
429
|
+
离散化: { tier: core }
|
|
430
|
+
离线算法: { tier: normal }
|
|
431
|
+
CDQ 分治: { tier: normal }
|
|
432
|
+
整体二分: { tier: normal }
|
|
433
|
+
莫队算法: { tier: normal, why: "亚洲区域赛数据结构题常客;入门段位 2400 但模板化程度高" }
|
|
434
|
+
分数规划: { tier: normal }
|
|
435
|
+
悬线法: { tier: normal }
|
|
436
|
+
表达式求值: { tier: normal }
|
|
437
|
+
随机化技巧: { tier: normal, why: "ICPC 不允许近似解,但随机化算法(如哈希/随机化判定)有位置" }
|
|
438
|
+
随机化: { tier: rare }
|
|
439
|
+
随机函数: { tier: rare }
|
|
440
|
+
模拟退火: { tier: rare }
|
|
441
|
+
爬山算法: { tier: skip }
|
|
442
|
+
约瑟夫问题: { tier: rare }
|
|
443
|
+
格雷码: { tier: rare }
|
|
444
|
+
珂朵莉树/颜色段均摊: { tier: rare }
|
|
445
|
+
主元素问题: { tier: rare }
|
|
446
|
+
15-puzzle: { tier: skip }
|
|
447
|
+
Garsia–Wachs 算法: { tier: skip }
|
|
448
|
+
Kahan 求和: { tier: skip }
|
|
449
|
+
在一台机器上规划任务: { tier: skip }
|
|
450
|
+
字节顺序: { tier: rare }
|
|
451
|
+
计算理论基础: { tier: skip }
|
|
452
|
+
|
|
453
|
+
# ══ 专题 ══════════════════════════════════════════════
|
|
454
|
+
RMQ: { tier: normal }
|
|
455
|
+
并查集应用: { tier: normal }
|
|
456
|
+
括号序列: { tier: normal }
|
|
457
|
+
线段树与离线询问: { tier: rare }
|