diff --git a/site/public/llms.txt b/site/public/llms.txt index dc36f77..fb2944d 100644 --- a/site/public/llms.txt +++ b/site/public/llms.txt @@ -19,40 +19,40 @@ ## 背包 DP(A) - [背包 DP · DP大师](https://dp.round1.cc/part/a): 背包 DP学习路径以“容量受限下的取舍:物品件数属性决定了背包的谱系。”为主线,串联 9 门课程的状态模型、转移顺序、可视化验证与配套题目。(最近更新:2026-08-27T05:20:51.219Z) -- [01 背包 · 背包 DP · DP大师](https://dp.round1.cc/part/a/01): 01 背包课程回答“每件物品只能取一次时,为什么容量必须逆序更新”。内容以取或不取·一维逆推·恰好装满为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.030Z) -- [完全背包 · 背包 DP · DP大师](https://dp.round1.cc/part/a/complete): 完全背包课程回答“物品可无限取用时,正序更新如何复用本轮状态”。内容以无限件·一维正推为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.030Z) -- [多重背包 · 背包 DP · DP大师](https://dp.round1.cc/part/a/multiple): 多重背包课程回答“有限件物品怎样从朴素枚举优化到二进制或单调队列”。内容以朴素·二进制·单调队列为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.033Z) -- [分组背包 · 背包 DP · DP大师](https://dp.round1.cc/part/a/group): 分组背包课程回答“每组至多选一件时,如何隔离组内选择”。内容以每组至多选一件为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.032Z) -- [混合背包 · 背包 DP · DP大师](https://dp.round1.cc/part/a/mixed): 混合背包课程回答“01、完全和多重物品怎样共用一套转移框架”。内容以01/完全/多重同题为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.032Z) -- [二维费用背包 · 背包 DP · DP大师](https://dp.round1.cc/part/a/cost2d): 二维费用背包课程回答“同时受两种容量约束时,状态维度与枚举顺序如何设计”。内容以两种费用同时受限为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.030Z) -- [有依赖的背包 · 背包 DP · DP大师](https://dp.round1.cc/part/a/dep): 有依赖的背包课程回答“带主件附件依赖的选择怎样转化为合法组合”。内容以主件-附件·依赖→分组为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.031Z) -- [背包综合变形 · 背包 DP · DP大师](https://dp.round1.cc/part/a/variant): 背包综合变形课程回答“背包模型如何扩展到计数、撤销和方案恢复”。内容以方案数·撤销·具体方案为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.034Z) +- [01 背包 · 背包 DP · DP大师](https://dp.round1.cc/part/a/01): 01 背包课程回答“每件物品只能取一次时,为什么容量必须逆序更新”。内容以取或不取·一维逆推·恰好装满为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T06:00:55.302Z) +- [完全背包 · 背包 DP · DP大师](https://dp.round1.cc/part/a/complete): 完全背包课程回答“物品可无限取用时,正序更新如何复用本轮状态”。内容以无限件·一维正推为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T06:00:55.302Z) +- [多重背包 · 背包 DP · DP大师](https://dp.round1.cc/part/a/multiple): 多重背包课程回答“有限件物品怎样从朴素枚举优化到二进制或单调队列”。内容以朴素·二进制·单调队列为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T06:00:55.302Z) +- [分组背包 · 背包 DP · DP大师](https://dp.round1.cc/part/a/group): 分组背包课程回答“每组至多选一件时,如何隔离组内选择”。内容以每组至多选一件为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T06:00:55.302Z) +- [混合背包 · 背包 DP · DP大师](https://dp.round1.cc/part/a/mixed): 混合背包课程回答“01、完全和多重物品怎样共用一套转移框架”。内容以01/完全/多重同题为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T06:00:55.302Z) +- [二维费用背包 · 背包 DP · DP大师](https://dp.round1.cc/part/a/cost2d): 二维费用背包课程回答“同时受两种容量约束时,状态维度与枚举顺序如何设计”。内容以两种费用同时受限为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T06:00:55.302Z) +- [有依赖的背包 · 背包 DP · DP大师](https://dp.round1.cc/part/a/dep): 有依赖的背包课程回答“带主件附件依赖的选择怎样转化为合法组合”。内容以主件-附件·依赖→分组为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T06:00:55.302Z) +- [背包综合变形 · 背包 DP · DP大师](https://dp.round1.cc/part/a/variant): 背包综合变形课程回答“背包模型如何扩展到计数、撤销和方案恢复”。内容以方案数·撤销·具体方案为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T06:00:55.302Z) - [辨析:分数背包=贪心 · 背包 DP · DP大师](https://dp.round1.cc/part/a/fractional): 辨析:分数背包=贪心课程回答“为什么可分割物品属于贪心而不是 01 背包”。内容以可分割⇒贪心 vs 整取⇒DP为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.031Z) ## 线性 DP(B) - [线性 DP · DP大师](https://dp.round1.cc/part/b): 线性 DP学习路径以“把问题排成一条推进的序列,dp[i] 只依赖更早的状态。”为主线,串联 7 门课程的状态模型、转移顺序、可视化验证与配套题目。(最近更新:2026-08-27T05:20:51.219Z) -- [路径型 / 递推入门 · 线性 DP · DP大师](https://dp.round1.cc/part/b/path): 路径型 / 递推入门课程回答“沿序列或网格推进时,如何定义最小充分状态”。内容以数字三角形·过河卒·方格取数为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.022Z) -- [最大子段和 · 线性 DP · DP大师](https://dp.round1.cc/part/b/maxseg): 最大子段和课程回答“如何用一个局部状态维护最大连续子段”。内容以Kadane·环形·两段不相交为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.035Z) -- [最长上升子序列 LIS · 线性 DP · DP大师](https://dp.round1.cc/part/b/lis): 最长上升子序列 LIS课程回答“最长上升子序列如何从二次转移优化到对数查找”。内容以O(n²) 与 O(n log n)·导弹拦截为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.037Z) -- [最长公共子序列 LCS · 线性 DP · DP大师](https://dp.round1.cc/part/b/lcs): 最长公共子序列 LCS课程回答“两个序列的公共结构如何通过二维状态刻画”。内容以排列 LCS→LIS·计数为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.021Z) -- [编辑距离 · 线性 DP · DP大师](https://dp.round1.cc/part/b/edit): 编辑距离课程回答“插入、删除和替换如何统一进编辑距离转移”。内容以删/插/改三向转移为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.020Z) -- [线性状态机 DP · 线性 DP · DP大师](https://dp.round1.cc/part/b/fsm): 线性状态机 DP课程回答“带持有或选择限制的问题怎样画成有限状态机”。内容以受限选取·股票买卖为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.019Z) -- [计数 / 划分型 · 线性 DP · DP大师](https://dp.round1.cc/part/b/count): 计数 / 划分型课程回答“计数与划分问题如何避免重复或遗漏方案”。内容以方案数·高精度·整数划分为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.036Z) +- [路径型 / 递推入门 · 线性 DP · DP大师](https://dp.round1.cc/part/b/path): 路径型 / 递推入门课程回答“沿序列或网格推进时,如何定义最小充分状态”。内容以数字三角形·过河卒·方格取数为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T06:00:55.302Z) +- [最大子段和 · 线性 DP · DP大师](https://dp.round1.cc/part/b/maxseg): 最大子段和课程回答“如何用一个局部状态维护最大连续子段”。内容以Kadane·环形·两段不相交为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T06:00:55.302Z) +- [最长上升子序列 LIS · 线性 DP · DP大师](https://dp.round1.cc/part/b/lis): 最长上升子序列 LIS课程回答“最长上升子序列如何从二次转移优化到对数查找”。内容以O(n²) 与 O(n log n)·导弹拦截为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T06:00:55.302Z) +- [最长公共子序列 LCS · 线性 DP · DP大师](https://dp.round1.cc/part/b/lcs): 最长公共子序列 LCS课程回答“两个序列的公共结构如何通过二维状态刻画”。内容以排列 LCS→LIS·计数为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T06:00:55.302Z) +- [编辑距离 · 线性 DP · DP大师](https://dp.round1.cc/part/b/edit): 编辑距离课程回答“插入、删除和替换如何统一进编辑距离转移”。内容以删/插/改三向转移为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T06:00:55.302Z) +- [线性状态机 DP · 线性 DP · DP大师](https://dp.round1.cc/part/b/fsm): 线性状态机 DP课程回答“带持有或选择限制的问题怎样画成有限状态机”。内容以受限选取·股票买卖为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T06:00:57.462Z) +- [计数 / 划分型 · 线性 DP · DP大师](https://dp.round1.cc/part/b/count): 计数 / 划分型课程回答“计数与划分问题如何避免重复或遗漏方案”。内容以方案数·高精度·整数划分为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T06:00:55.302Z) ## 区间 DP(C) - [区间 DP · DP大师](https://dp.round1.cc/part/c): 区间 DP学习路径以“dp[l][r] 表示区间最优,枚举分割/合并点,按长度递推。”为主线,串联 5 门课程的状态模型、转移顺序、可视化验证与配套题目。(最近更新:2026-08-27T05:20:51.219Z) -- [石子合并(链形) · 区间 DP · DP大师](https://dp.round1.cc/part/c/stone): 石子合并(链形)课程回答“区间合并代价为何要按长度递增计算”。内容以区间合并基础模型为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.027Z) -- [环形区间 DP · 区间 DP · DP大师](https://dp.round1.cc/part/c/ring): 环形区间 DP课程回答“环形区间怎样通过复制序列转化为链形区间”。内容以断环为链·能量项链为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.026Z) -- [回文 / 括号 · 区间 DP · DP大师](https://dp.round1.cc/part/c/palindrome): 回文 / 括号课程回答“端点匹配如何组织回文与括号类转移”。内容以收缩扩展·端点匹配为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.025Z) -- [加分二叉树型 · 区间 DP · DP大师](https://dp.round1.cc/part/c/tree): 加分二叉树型课程回答“枚举区间根节点时,子区间如何对应左右子树”。内容以枚举根·区间即子树为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.026Z) -- [合并 / 删除类 · 区间 DP · DP大师](https://dp.round1.cc/part/c/merge): 合并 / 删除类课程回答“合并与删除过程怎样压缩成区间状态”。内容以2048·区间删除代价为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.028Z) +- [石子合并(链形) · 区间 DP · DP大师](https://dp.round1.cc/part/c/stone): 石子合并(链形)课程回答“区间合并代价为何要按长度递增计算”。内容以区间合并基础模型为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T06:00:55.302Z) +- [环形区间 DP · 区间 DP · DP大师](https://dp.round1.cc/part/c/ring): 环形区间 DP课程回答“环形区间怎样通过复制序列转化为链形区间”。内容以断环为链·能量项链为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T06:00:55.302Z) +- [回文 / 括号 · 区间 DP · DP大师](https://dp.round1.cc/part/c/palindrome): 回文 / 括号课程回答“端点匹配如何组织回文与括号类转移”。内容以收缩扩展·端点匹配为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T06:00:55.302Z) +- [加分二叉树型 · 区间 DP · DP大师](https://dp.round1.cc/part/c/tree): 加分二叉树型课程回答“枚举区间根节点时,子区间如何对应左右子树”。内容以枚举根·区间即子树为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T06:00:55.302Z) +- [合并 / 删除类 · 区间 DP · DP大师](https://dp.round1.cc/part/c/merge): 合并 / 删除类课程回答“合并与删除过程怎样压缩成区间状态”。内容以2048·区间删除代价为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T06:00:55.302Z) ## 矩阵 DP(D) - [矩阵 DP · DP大师](https://dp.round1.cc/part/d): 矩阵 DP学习路径以“两条主线:网格坐标上的 DP,与矩阵快速幂加速的递推。”为主线,串联 2 门课程的状态模型、转移顺序、可视化验证与配套题目。(最近更新:2026-08-27T05:20:51.219Z) -- [网格 / 矩阵上的 DP · 矩阵 DP · DP大师](https://dp.round1.cc/part/d/grid): 网格 / 矩阵上的 DP课程回答“网格路径、最大正方形和双路径如何选择状态维度”。内容以路径·最大正方形·双线程为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.023Z) +- [网格 / 矩阵上的 DP · 矩阵 DP · DP大师](https://dp.round1.cc/part/d/grid): 网格 / 矩阵上的 DP课程回答“网格路径、最大正方形和双路径如何选择状态维度”。内容以路径·最大正方形·双线程为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T06:00:55.302Z) - [矩阵快速幂加速 · 矩阵 DP · DP大师](https://dp.round1.cc/part/d/matpow): 矩阵快速幂加速课程回答“线性递推怎样写成矩阵并用快速幂加速”。内容以递推→矩阵幂·O(k³log n)为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.038Z) ## 换根 DP(E) @@ -76,8 +76,8 @@ - [状压 DP · DP大师](https://dp.round1.cc/part/g): 状压 DP学习路径以“状态是一个集合,用二进制整数表示;转移在 mask 间进行。”为主线,串联 5 门课程的状态模型、转移顺序、可视化验证与配套题目。(最近更新:2026-08-27T05:20:51.219Z) - [棋盘 / 轮廓状压 · 状压 DP · DP大师](https://dp.round1.cc/part/g/board): 棋盘 / 轮廓状压课程回答“逐行棋盘约束怎样编码为兼容位掩码”。内容以互不侵犯·炮兵阵地为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.016Z) -- [集合状压 / TSP · 状压 DP · DP大师](https://dp.round1.cc/part/g/tsp): 集合状压 / TSP课程回答“集合访问状态如何保证 Hamilton 路径不重不漏”。内容以最短 Hamilton·吃奶酪为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.017Z) -- [状压 + 覆盖 · 状压 DP · DP大师](https://dp.round1.cc/part/g/cover): 状压 + 覆盖课程回答“几何覆盖选择怎样预处理成可转移的状态集合”。内容以愤怒的小鸟·宝藏为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.016Z) +- [集合状压 / TSP · 状压 DP · DP大师](https://dp.round1.cc/part/g/tsp): 集合状压 / TSP课程回答“集合访问状态如何保证 Hamilton 路径不重不漏”。内容以最短 Hamilton·吃奶酪为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T06:00:55.302Z) +- [状压 + 覆盖 · 状压 DP · DP大师](https://dp.round1.cc/part/g/cover): 状压 + 覆盖课程回答“几何覆盖选择怎样预处理成可转移的状态集合”。内容以愤怒的小鸟·宝藏为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T06:00:52.946Z) - [综合技巧 · 状压 DP · DP大师](https://dp.round1.cc/part/g/subset): 综合技巧课程回答“子集枚举与计数变形有哪些可复用的位运算技巧”。内容以枚举子集·计数变形为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:21:25.017Z) - [插头 DP · 状压 DP · DP大师](https://dp.round1.cc/part/g/plug): 插头 DP课程回答“轮廓线上的连通性怎样压缩为插头状态”。内容以轮廓线连通性为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。(最近更新:2026-08-27T05:20:51.219Z) diff --git a/site/public/route-summaries.json b/site/public/route-summaries.json index e8926a0..48b572b 100644 --- a/site/public/route-summaries.json +++ b/site/public/route-summaries.json @@ -73,7 +73,7 @@ "title": "01 背包 · 背包 DP · DP大师", "summary": "01 背包课程回答“每件物品只能取一次时,为什么容量必须逆序更新”。内容以取或不取·一维逆推·恰好装满为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。", "type": "lesson", - "lastModified": "2026-08-27T05:21:25.030Z", + "lastModified": "2026-08-27T06:00:55.302Z", "reviewedBy": "AzureL蔚澜算法", "reviewStatus": "持续复核" }, @@ -83,7 +83,7 @@ "title": "完全背包 · 背包 DP · DP大师", "summary": "完全背包课程回答“物品可无限取用时,正序更新如何复用本轮状态”。内容以无限件·一维正推为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。", "type": "lesson", - "lastModified": "2026-08-27T05:21:25.030Z", + "lastModified": "2026-08-27T06:00:55.302Z", "reviewedBy": "AzureL蔚澜算法", "reviewStatus": "持续复核" }, @@ -93,7 +93,7 @@ "title": "多重背包 · 背包 DP · DP大师", "summary": "多重背包课程回答“有限件物品怎样从朴素枚举优化到二进制或单调队列”。内容以朴素·二进制·单调队列为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。", "type": "lesson", - "lastModified": "2026-08-27T05:21:25.033Z", + "lastModified": "2026-08-27T06:00:55.302Z", "reviewedBy": "AzureL蔚澜算法", "reviewStatus": "持续复核" }, @@ -103,7 +103,7 @@ "title": "分组背包 · 背包 DP · DP大师", "summary": "分组背包课程回答“每组至多选一件时,如何隔离组内选择”。内容以每组至多选一件为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。", "type": "lesson", - "lastModified": "2026-08-27T05:21:25.032Z", + "lastModified": "2026-08-27T06:00:55.302Z", "reviewedBy": "AzureL蔚澜算法", "reviewStatus": "持续复核" }, @@ -113,7 +113,7 @@ "title": "混合背包 · 背包 DP · DP大师", "summary": "混合背包课程回答“01、完全和多重物品怎样共用一套转移框架”。内容以01/完全/多重同题为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。", "type": "lesson", - "lastModified": "2026-08-27T05:21:25.032Z", + "lastModified": "2026-08-27T06:00:55.302Z", "reviewedBy": "AzureL蔚澜算法", "reviewStatus": "持续复核" }, @@ -123,7 +123,7 @@ "title": "二维费用背包 · 背包 DP · DP大师", "summary": "二维费用背包课程回答“同时受两种容量约束时,状态维度与枚举顺序如何设计”。内容以两种费用同时受限为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。", "type": "lesson", - "lastModified": "2026-08-27T05:21:25.030Z", + "lastModified": "2026-08-27T06:00:55.302Z", "reviewedBy": "AzureL蔚澜算法", "reviewStatus": "持续复核" }, @@ -133,7 +133,7 @@ "title": "有依赖的背包 · 背包 DP · DP大师", "summary": "有依赖的背包课程回答“带主件附件依赖的选择怎样转化为合法组合”。内容以主件-附件·依赖→分组为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。", "type": "lesson", - "lastModified": "2026-08-27T05:21:25.031Z", + "lastModified": "2026-08-27T06:00:55.302Z", "reviewedBy": "AzureL蔚澜算法", "reviewStatus": "持续复核" }, @@ -143,7 +143,7 @@ "title": "背包综合变形 · 背包 DP · DP大师", "summary": "背包综合变形课程回答“背包模型如何扩展到计数、撤销和方案恢复”。内容以方案数·撤销·具体方案为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。", "type": "lesson", - "lastModified": "2026-08-27T05:21:25.034Z", + "lastModified": "2026-08-27T06:00:55.302Z", "reviewedBy": "AzureL蔚澜算法", "reviewStatus": "持续复核" }, @@ -163,7 +163,7 @@ "title": "路径型 / 递推入门 · 线性 DP · DP大师", "summary": "路径型 / 递推入门课程回答“沿序列或网格推进时,如何定义最小充分状态”。内容以数字三角形·过河卒·方格取数为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。", "type": "lesson", - "lastModified": "2026-08-27T05:21:25.022Z", + "lastModified": "2026-08-27T06:00:55.302Z", "reviewedBy": "AzureL蔚澜算法", "reviewStatus": "持续复核" }, @@ -173,7 +173,7 @@ "title": "最大子段和 · 线性 DP · DP大师", "summary": "最大子段和课程回答“如何用一个局部状态维护最大连续子段”。内容以Kadane·环形·两段不相交为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。", "type": "lesson", - "lastModified": "2026-08-27T05:21:25.035Z", + "lastModified": "2026-08-27T06:00:55.302Z", "reviewedBy": "AzureL蔚澜算法", "reviewStatus": "持续复核" }, @@ -183,7 +183,7 @@ "title": "最长上升子序列 LIS · 线性 DP · DP大师", "summary": "最长上升子序列 LIS课程回答“最长上升子序列如何从二次转移优化到对数查找”。内容以O(n²) 与 O(n log n)·导弹拦截为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。", "type": "lesson", - "lastModified": "2026-08-27T05:21:25.037Z", + "lastModified": "2026-08-27T06:00:55.302Z", "reviewedBy": "AzureL蔚澜算法", "reviewStatus": "持续复核" }, @@ -193,7 +193,7 @@ "title": "最长公共子序列 LCS · 线性 DP · DP大师", "summary": "最长公共子序列 LCS课程回答“两个序列的公共结构如何通过二维状态刻画”。内容以排列 LCS→LIS·计数为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。", "type": "lesson", - "lastModified": "2026-08-27T05:21:25.021Z", + "lastModified": "2026-08-27T06:00:55.302Z", "reviewedBy": "AzureL蔚澜算法", "reviewStatus": "持续复核" }, @@ -203,7 +203,7 @@ "title": "编辑距离 · 线性 DP · DP大师", "summary": "编辑距离课程回答“插入、删除和替换如何统一进编辑距离转移”。内容以删/插/改三向转移为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。", "type": "lesson", - "lastModified": "2026-08-27T05:21:25.020Z", + "lastModified": "2026-08-27T06:00:55.302Z", "reviewedBy": "AzureL蔚澜算法", "reviewStatus": "持续复核" }, @@ -213,7 +213,7 @@ "title": "线性状态机 DP · 线性 DP · DP大师", "summary": "线性状态机 DP课程回答“带持有或选择限制的问题怎样画成有限状态机”。内容以受限选取·股票买卖为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。", "type": "lesson", - "lastModified": "2026-08-27T05:21:25.019Z", + "lastModified": "2026-08-27T06:00:57.462Z", "reviewedBy": "AzureL蔚澜算法", "reviewStatus": "持续复核" }, @@ -223,7 +223,7 @@ "title": "计数 / 划分型 · 线性 DP · DP大师", "summary": "计数 / 划分型课程回答“计数与划分问题如何避免重复或遗漏方案”。内容以方案数·高精度·整数划分为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。", "type": "lesson", - "lastModified": "2026-08-27T05:21:25.036Z", + "lastModified": "2026-08-27T06:00:55.302Z", "reviewedBy": "AzureL蔚澜算法", "reviewStatus": "持续复核" }, @@ -233,7 +233,7 @@ "title": "石子合并(链形) · 区间 DP · DP大师", "summary": "石子合并(链形)课程回答“区间合并代价为何要按长度递增计算”。内容以区间合并基础模型为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。", "type": "lesson", - "lastModified": "2026-08-27T05:21:25.027Z", + "lastModified": "2026-08-27T06:00:55.302Z", "reviewedBy": "AzureL蔚澜算法", "reviewStatus": "持续复核" }, @@ -243,7 +243,7 @@ "title": "环形区间 DP · 区间 DP · DP大师", "summary": "环形区间 DP课程回答“环形区间怎样通过复制序列转化为链形区间”。内容以断环为链·能量项链为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。", "type": "lesson", - "lastModified": "2026-08-27T05:21:25.026Z", + "lastModified": "2026-08-27T06:00:55.302Z", "reviewedBy": "AzureL蔚澜算法", "reviewStatus": "持续复核" }, @@ -253,7 +253,7 @@ "title": "回文 / 括号 · 区间 DP · DP大师", "summary": "回文 / 括号课程回答“端点匹配如何组织回文与括号类转移”。内容以收缩扩展·端点匹配为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。", "type": "lesson", - "lastModified": "2026-08-27T05:21:25.025Z", + "lastModified": "2026-08-27T06:00:55.302Z", "reviewedBy": "AzureL蔚澜算法", "reviewStatus": "持续复核" }, @@ -263,7 +263,7 @@ "title": "加分二叉树型 · 区间 DP · DP大师", "summary": "加分二叉树型课程回答“枚举区间根节点时,子区间如何对应左右子树”。内容以枚举根·区间即子树为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。", "type": "lesson", - "lastModified": "2026-08-27T05:21:25.026Z", + "lastModified": "2026-08-27T06:00:55.302Z", "reviewedBy": "AzureL蔚澜算法", "reviewStatus": "持续复核" }, @@ -273,7 +273,7 @@ "title": "合并 / 删除类 · 区间 DP · DP大师", "summary": "合并 / 删除类课程回答“合并与删除过程怎样压缩成区间状态”。内容以2048·区间删除代价为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。", "type": "lesson", - "lastModified": "2026-08-27T05:21:25.028Z", + "lastModified": "2026-08-27T06:00:55.302Z", "reviewedBy": "AzureL蔚澜算法", "reviewStatus": "持续复核" }, @@ -283,7 +283,7 @@ "title": "网格 / 矩阵上的 DP · 矩阵 DP · DP大师", "summary": "网格 / 矩阵上的 DP课程回答“网格路径、最大正方形和双路径如何选择状态维度”。内容以路径·最大正方形·双线程为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。", "type": "lesson", - "lastModified": "2026-08-27T05:21:25.023Z", + "lastModified": "2026-08-27T06:00:55.302Z", "reviewedBy": "AzureL蔚澜算法", "reviewStatus": "持续复核" }, @@ -403,7 +403,7 @@ "title": "集合状压 / TSP · 状压 DP · DP大师", "summary": "集合状压 / TSP课程回答“集合访问状态如何保证 Hamilton 路径不重不漏”。内容以最短 Hamilton·吃奶酪为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。", "type": "lesson", - "lastModified": "2026-08-27T05:21:25.017Z", + "lastModified": "2026-08-27T06:00:55.302Z", "reviewedBy": "AzureL蔚澜算法", "reviewStatus": "持续复核" }, @@ -413,7 +413,7 @@ "title": "状压 + 覆盖 · 状压 DP · DP大师", "summary": "状压 + 覆盖课程回答“几何覆盖选择怎样预处理成可转移的状态集合”。内容以愤怒的小鸟·宝藏为主线,配合逐步推导、可编辑演示、例题与练习形成可复查的学习闭环。", "type": "lesson", - "lastModified": "2026-08-27T05:21:25.016Z", + "lastModified": "2026-08-27T06:00:52.946Z", "reviewedBy": "AzureL蔚澜算法", "reviewStatus": "持续复核" }, diff --git a/site/public/sitemap.xml b/site/public/sitemap.xml index d428c58..0330bfc 100644 --- a/site/public/sitemap.xml +++ b/site/public/sitemap.xml @@ -14,19 +14,19 @@ https://dp.round1.cc/part/a/01 - 2026-08-27T05:21:25.030Z + 2026-08-27T06:00:55.302Z https://dp.round1.cc/part/a/complete - 2026-08-27T05:21:25.030Z + 2026-08-27T06:00:55.302Z https://dp.round1.cc/part/a/cost2d - 2026-08-27T05:21:25.030Z + 2026-08-27T06:00:55.302Z https://dp.round1.cc/part/a/dep - 2026-08-27T05:21:25.031Z + 2026-08-27T06:00:55.302Z https://dp.round1.cc/part/a/fractional @@ -34,19 +34,19 @@ https://dp.round1.cc/part/a/group - 2026-08-27T05:21:25.032Z + 2026-08-27T06:00:55.302Z https://dp.round1.cc/part/a/mixed - 2026-08-27T05:21:25.032Z + 2026-08-27T06:00:55.302Z https://dp.round1.cc/part/a/multiple - 2026-08-27T05:21:25.033Z + 2026-08-27T06:00:55.302Z https://dp.round1.cc/part/a/variant - 2026-08-27T05:21:25.034Z + 2026-08-27T06:00:55.302Z https://dp.round1.cc/part/b @@ -54,31 +54,31 @@ https://dp.round1.cc/part/b/count - 2026-08-27T05:21:25.036Z + 2026-08-27T06:00:55.302Z https://dp.round1.cc/part/b/edit - 2026-08-27T05:21:25.020Z + 2026-08-27T06:00:55.302Z https://dp.round1.cc/part/b/fsm - 2026-08-27T05:21:25.019Z + 2026-08-27T06:00:57.462Z https://dp.round1.cc/part/b/lcs - 2026-08-27T05:21:25.021Z + 2026-08-27T06:00:55.302Z https://dp.round1.cc/part/b/lis - 2026-08-27T05:21:25.037Z + 2026-08-27T06:00:55.302Z https://dp.round1.cc/part/b/maxseg - 2026-08-27T05:21:25.035Z + 2026-08-27T06:00:55.302Z https://dp.round1.cc/part/b/path - 2026-08-27T05:21:25.022Z + 2026-08-27T06:00:55.302Z https://dp.round1.cc/part/c @@ -86,23 +86,23 @@ https://dp.round1.cc/part/c/merge - 2026-08-27T05:21:25.028Z + 2026-08-27T06:00:55.302Z https://dp.round1.cc/part/c/palindrome - 2026-08-27T05:21:25.025Z + 2026-08-27T06:00:55.302Z https://dp.round1.cc/part/c/ring - 2026-08-27T05:21:25.026Z + 2026-08-27T06:00:55.302Z https://dp.round1.cc/part/c/stone - 2026-08-27T05:21:25.027Z + 2026-08-27T06:00:55.302Z https://dp.round1.cc/part/c/tree - 2026-08-27T05:21:25.026Z + 2026-08-27T06:00:55.302Z https://dp.round1.cc/part/d @@ -110,7 +110,7 @@ https://dp.round1.cc/part/d/grid - 2026-08-27T05:21:25.023Z + 2026-08-27T06:00:55.302Z https://dp.round1.cc/part/d/matpow @@ -170,7 +170,7 @@ https://dp.round1.cc/part/g/cover - 2026-08-27T05:21:25.016Z + 2026-08-27T06:00:52.946Z https://dp.round1.cc/part/g/plug @@ -182,7 +182,7 @@ https://dp.round1.cc/part/g/tsp - 2026-08-27T05:21:25.017Z + 2026-08-27T06:00:55.302Z https://dp.round1.cc/problems diff --git a/site/src/components/demos/bitmask/CoverDemo.tsx b/site/src/components/demos/bitmask/CoverDemo.tsx index 59ada74..ffd44ec 100644 --- a/site/src/components/demos/bitmask/CoverDemo.tsx +++ b/site/src/components/demos/bitmask/CoverDemo.tsx @@ -24,7 +24,14 @@ function MiniBits({ mask, n, tone }: { mask: number; n: number; tone: 'on' | 'of const gap = 3 const w = n * cell + (n - 1) * gap return ( - + {bits.map((b, i) => ( diff --git a/site/src/components/dp-engine/DPViz.tsx b/site/src/components/dp-engine/DPViz.tsx index 927a9a1..6e80bf8 100644 --- a/site/src/components/dp-engine/DPViz.tsx +++ b/site/src/components/dp-engine/DPViz.tsx @@ -102,6 +102,7 @@ export default function DPViz({ model }: { model: VizModel }) { width={model.cols * cell} height={model.rows * cell} viewBox={`0 0 ${model.cols * cell} ${model.rows * cell}`} + aria-hidden="true" > diff --git a/site/src/data/routeLastModified.ts b/site/src/data/routeLastModified.ts index 8d7d3e9..0f02d42 100644 --- a/site/src/data/routeLastModified.ts +++ b/site/src/data/routeLastModified.ts @@ -9,28 +9,28 @@ export const ROUTE_LAST_MODIFIED: Readonly> = Object.free "/part/e": "2026-08-27T05:20:51.219Z", "/part/f": "2026-08-27T05:20:51.219Z", "/part/g": "2026-08-27T05:20:51.219Z", - "/part/a/01": "2026-08-27T05:21:25.030Z", - "/part/a/complete": "2026-08-27T05:21:25.030Z", - "/part/a/multiple": "2026-08-27T05:21:25.033Z", - "/part/a/group": "2026-08-27T05:21:25.032Z", - "/part/a/mixed": "2026-08-27T05:21:25.032Z", - "/part/a/cost2d": "2026-08-27T05:21:25.030Z", - "/part/a/dep": "2026-08-27T05:21:25.031Z", - "/part/a/variant": "2026-08-27T05:21:25.034Z", + "/part/a/01": "2026-08-27T06:00:55.302Z", + "/part/a/complete": "2026-08-27T06:00:55.302Z", + "/part/a/multiple": "2026-08-27T06:00:55.302Z", + "/part/a/group": "2026-08-27T06:00:55.302Z", + "/part/a/mixed": "2026-08-27T06:00:55.302Z", + "/part/a/cost2d": "2026-08-27T06:00:55.302Z", + "/part/a/dep": "2026-08-27T06:00:55.302Z", + "/part/a/variant": "2026-08-27T06:00:55.302Z", "/part/a/fractional": "2026-08-27T05:21:25.031Z", - "/part/b/path": "2026-08-27T05:21:25.022Z", - "/part/b/maxseg": "2026-08-27T05:21:25.035Z", - "/part/b/lis": "2026-08-27T05:21:25.037Z", - "/part/b/lcs": "2026-08-27T05:21:25.021Z", - "/part/b/edit": "2026-08-27T05:21:25.020Z", - "/part/b/fsm": "2026-08-27T05:21:25.019Z", - "/part/b/count": "2026-08-27T05:21:25.036Z", - "/part/c/stone": "2026-08-27T05:21:25.027Z", - "/part/c/ring": "2026-08-27T05:21:25.026Z", - "/part/c/palindrome": "2026-08-27T05:21:25.025Z", - "/part/c/tree": "2026-08-27T05:21:25.026Z", - "/part/c/merge": "2026-08-27T05:21:25.028Z", - "/part/d/grid": "2026-08-27T05:21:25.023Z", + "/part/b/path": "2026-08-27T06:00:55.302Z", + "/part/b/maxseg": "2026-08-27T06:00:55.302Z", + "/part/b/lis": "2026-08-27T06:00:55.302Z", + "/part/b/lcs": "2026-08-27T06:00:55.302Z", + "/part/b/edit": "2026-08-27T06:00:55.302Z", + "/part/b/fsm": "2026-08-27T06:00:57.462Z", + "/part/b/count": "2026-08-27T06:00:55.302Z", + "/part/c/stone": "2026-08-27T06:00:55.302Z", + "/part/c/ring": "2026-08-27T06:00:55.302Z", + "/part/c/palindrome": "2026-08-27T06:00:55.302Z", + "/part/c/tree": "2026-08-27T06:00:55.302Z", + "/part/c/merge": "2026-08-27T06:00:55.302Z", + "/part/d/grid": "2026-08-27T06:00:55.302Z", "/part/d/matpow": "2026-08-27T05:21:25.038Z", "/part/e/basic": "2026-08-27T05:21:25.039Z", "/part/e/distsum": "2026-08-27T05:21:25.039Z", @@ -42,8 +42,8 @@ export const ROUTE_LAST_MODIFIED: Readonly> = Object.free "/part/f/cover": "2026-08-27T05:21:25.040Z", "/part/f/count": "2026-08-27T05:21:25.042Z", "/part/g/board": "2026-08-27T05:21:25.016Z", - "/part/g/tsp": "2026-08-27T05:21:25.017Z", - "/part/g/cover": "2026-08-27T05:21:25.016Z", + "/part/g/tsp": "2026-08-27T06:00:55.302Z", + "/part/g/cover": "2026-08-27T06:00:52.946Z", "/part/g/subset": "2026-08-27T05:21:25.017Z", "/part/g/plug": "2026-08-27T05:20:51.219Z", "/method": "2026-08-27T05:20:51.219Z", @@ -58,28 +58,28 @@ export const ROUTE_CONTENT_DIGESTS: Readonly> = Object.fr "/part/e": "4de68f562839281a9ef560ba8661f8553094ecf1df754cdcbecbb82e78296777", "/part/f": "2adc3ae92073838fe91fb7ea47cfbb082c4d92d66edb8cc50c0e34576a036493", "/part/g": "da6dac3360eaf84dca96a7313d9bd8314fd7c07b3ca50a75945e2ca300977a32", - "/part/a/01": "248968051fc172b6878a4917f9f2e98c8aa9c05f9632d7fec892326f98008dbe", - "/part/a/complete": "97aeb4ded53628b98a94f1b14630826a776f11e3b05977a928410910b974e871", - "/part/a/multiple": "8d3fe0a8dd6f5e93c484e9f42c97655cbf40503a28d19e994eacdc5da53991fc", - "/part/a/group": "687c1d240e308334e58706f070ffaa1713b9c95b89da08a856cfe169dd5e954a", - "/part/a/mixed": "b723cdd0cf03cd58146ec1f71e3f3b0b004b07115a1515b78b9301287dcc3fe0", - "/part/a/cost2d": "27ee2d02c7c9e388b551d19be09a642d25955114a376dce3f3048fb4529fb453", - "/part/a/dep": "f0dd581f4572428a73dc34e52372cc63e282a3b12bfc79c6ea805b18e03f52e6", - "/part/a/variant": "fb9c74a0c2e171b7288bd81ad09521e64645bdb9584c13a7df46392a50eae492", + "/part/a/01": "f9a191b5f63472050e4908df64e22448c076e118e6828d5832021a8e4e10a4e0", + "/part/a/complete": "fb1591db15abe0ecc85773049eab06744dc7f2f6c85220af3507f291be15958f", + "/part/a/multiple": "0afbac44b4f3d3d5b8f8881c9d4cea1f19626a495215de5e1de683493d763d47", + "/part/a/group": "5da7ffe3b6430c749d13fe8290fb362a4a7c63b2213865ae801529f5190aacc2", + "/part/a/mixed": "c6e04e877df1dbda79897c65ffbd3836cb4a5aca3a7d3d66394c36dca9e13a22", + "/part/a/cost2d": "e8b066e9fb9b72add17323b41749bf103b3a96483c59e9dc55b27d17e8a82991", + "/part/a/dep": "a723fa5c471dbd517c896f8185610bddbf5bc105caaf5a8c7036f4b717758364", + "/part/a/variant": "e1ee1e995e97205738d49239bcf6c5f99cffffbcd27a09e210d2bd1d1a818cb1", "/part/a/fractional": "3937855f35fa311d85c82747abae4422617376345f5ee9c3ec8975c1ef39638f", - "/part/b/path": "7d690705a86143494974291f3071901ce43787339486d04a7ff34ec8d39b4470", - "/part/b/maxseg": "875c5949f1f4fad4198d1da6bd8a751ba8efa1946150f79344f6e1d6710ac3f5", - "/part/b/lis": "0ae929b38ddc36147d980789683a734ae86ee333f2453be0d36769f49eacb1a6", - "/part/b/lcs": "7cf95cf74da3524ad91631726944a575d93fb2fe72520d39f3e5362d0fe0177b", - "/part/b/edit": "f42cf1f53407e77dafba22206a59050cacddd63c8983d9d1f2a95e02c7876da2", - "/part/b/fsm": "b843db0863d4cdeff92dd984a16a549db77de7268c45d5a003a7bf2d62fef901", - "/part/b/count": "797be32219b419bfc743b2f7f5ab390806f2ea05fb3cdeb7cc5e365bdc2c83b6", - "/part/c/stone": "4c347b67f0d1d0f892ddf9e834e0aecef5d4e36a7e893630510e07ee7caa158a", - "/part/c/ring": "558e06a32db944d38192c8a77df84eba2d7e73ceeb62df4c7204945074ba588f", - "/part/c/palindrome": "87e320d148af0e3dc3c802824fd0bd95dd03d8c90ebc7a942776e4002e3e2f1e", - "/part/c/tree": "d43fcf9b6c21dead96562a95378083710ef696feca4b84a7c611a60a10a72d11", - "/part/c/merge": "30b675668cde9089930ee8ba41b8966e44652374172541ec676d4fa3fb5676e4", - "/part/d/grid": "22d5036edddde47cf314dd1cf2fb8a9e2d04b7f592e9c949f8a2f40e5792d9cc", + "/part/b/path": "8949058d55c4c5c425fcda5887fc3edfb4b961f047e79402e9b9b3f11f1e0d52", + "/part/b/maxseg": "49e806cfe36c470527356a32d0b337a2306f9d9ee0893e0b91f4355ee5aa8c71", + "/part/b/lis": "44e62332bbb1d8d7db91f0fb0eed692ae935cd8783ec17a597fe53adcddb2938", + "/part/b/lcs": "f2c6e99b17b9a612b904a34212e7a61a0faca019aff779fc66bf7b71ae9e775f", + "/part/b/edit": "a69a1617dccedc89122141cd2d48a4e7f461d53f1afaeb995fd454cf3f53b859", + "/part/b/fsm": "1df848fe1e100a0c955a17144456b4bbe40b1f3b28b5a4f325c1b1288cefd91f", + "/part/b/count": "2324c2aaf50cc7789efe7402622e56721a8b02fc66f4568da41e2039a2d7f19e", + "/part/c/stone": "390a42406fab71ce35513689f77567314c5b0a357dedcc26ce44ceb29aab6756", + "/part/c/ring": "7c75cb047f6500a3e927a40e63dd031b58bca9a4a21f1e31d97c9ca576e7f1e9", + "/part/c/palindrome": "859d8aa68b858ce78f2eb5199d03f74640897d9c22ba53c62608d63f90e6ea5e", + "/part/c/tree": "b37f2e89167f0c757c2f1f4a8485af70e6f59aea1cb66a8b24d717b97b723c7a", + "/part/c/merge": "efbf867f5b7ba7cfb85734cd37c88a9cf1ae0d757f03a269131368b8b3be457e", + "/part/d/grid": "e6d51a1ead8f47aa18641c5f1badbfa4d3b458fbb13d2fe60c553db7923dceb4", "/part/d/matpow": "fa49e6eea145d55275161dad682d73b34faa67470442ca09c195c41704789181", "/part/e/basic": "f2f2f912b651e7015372c0a5c9973ab89b817828e762b32b19f98016416d8bac", "/part/e/distsum": "e83ed68044d13668de785c6157c1b66bc3ed7126b032dfc7f9ca52b22d339032", @@ -91,8 +91,8 @@ export const ROUTE_CONTENT_DIGESTS: Readonly> = Object.fr "/part/f/cover": "75b16801d8c7f3a846e3efabfcfd31b94de034ca75c5f62577391fd88db49140", "/part/f/count": "b19bd0bc43df9f17a65c631d2a233defc33bb65558db03960e552fe78c5f34a6", "/part/g/board": "cb13cb71123c91c77cbe9a1caa63f48b190129bf3bca0a072524a09b6b124cc7", - "/part/g/tsp": "cf0fee76863f77d7fa92bb2f0195d93eb19fd8f1ae2f4da7adc96598bdfa2e70", - "/part/g/cover": "db3be9962ce022cd5d70a69889e500a761a9cd827175ea867444336695d61550", + "/part/g/tsp": "0be3fa9aa7eef4599bf41a4abf7812ab33940e6fb7b92dcce33b3b41faef38fe", + "/part/g/cover": "e07e9a92e2ad8b721f7d51fe51df9ac6dd74df2f2ddf7c4d95f086a01c17ba7d", "/part/g/subset": "9e2968bcbf4bea2666842a0a21d3a5ae6251aff5fe95bd2d0c26b06871733133", "/part/g/plug": "da66e08fd54a974c4a9e3db839af2f7bc098dea5f381908922705e55b440fb52", "/method": "7175149726b7d40d68e230afa4d750b1bc99c9229d9cb9edecae30fbfcc5a586",