Luogu
洛谷比赛记录
-
-
DlgtTemplate
定义 \(f_{i, j}\) 为在编号为 \([i,n]\) 的格子中选出格子,需要把前面选择的 \(j\) 个元素删掉的方案的得分的最大值。转移方程式为 \(f_{i, j} \leftarrow \max(f_{i + 1, j - b_i} + a_i, f_{i, j})\)。设 \(p_i\) 表示 \([1, i]\) 中 \(b_i = 0\) 的个数。
对于 \(f_{i, j}\),仅当 \(p_{i - 1} \ge j\) 时能取到。否则要删去的数会大于 \(j\)。
需要注意最左边的点可能逃过删除,枚举该点。
时间复杂度为 \(\mathcal{O}(n^2)\) 。代码
-
-
-
在不能放在一起的零件之间建边。检查是否是二分图。代码
-
发现
\[\sum \limits_{i = 1}^{2^n - 1} f(i) = \sum \limits_{i = 1}^{2^n - 1} dep_i \times val_i \]容易得到结论:深度越深的节点权值应该越大。
要求 \(f(p)\) 最大,显然以 \(p\) 为根的子树的节点的权值都应该尽可能大。
因此对节点 \(u\),其 \(val_{lson_u} = val_u \times 2,val_{rson_{u}} = val_u \times2+1\)。
设 \(dp_i\) 表示以 \(p\) 为根的子树的第 \(i\) 层的权值和。
则 \(dp_i = dp_{i - 1}\times4 +2^{i - 1}\)。初始化 \(dp_1 = val_p = 2^k - 1\)。
显然 \(f(p) = \sum\limits_{i = 1}^{n - dep_p + 1} dp_i\)。
而 \(n\le 1\times10^{12}\),考虑矩阵快速幂优化。
设一向量 \(\left[\begin{matrix}2^k-1 & 1 & 2^k - 1\end{matrix}\right]\) 分别表示 \(dp_i\),现在的常数项的值,\(\sum dp_i\) 的值(\(k\) 即为题目给出的字符串长度,显然查询的是第 \(k\) 层的节点)。
有转移矩阵
\[\left[\begin{matrix}4 & 0 & 4\\1 & 2 & 1\\0 & 0 & 1\end{matrix}\right] \]时间复杂度是的 \(\mathcal{O}(3^3 \log n)\)。代码
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现