Loading

随笔分类 -  具体问题 / dp

1 2 3 4 5 ··· 10 下一页
摘要:思路 肯定是在值域上处理, 类似今年 S T4 的将与未扫描部分相关的部分单独统计 定义 \(c_x\) 为 \(a_i = x\) 的数量 考虑 \(f_{i, j, k}\) 表示考虑到数字 \(i\), 当前要求容量到 \(j\), 当前容量为 \(k\) 的方案数 \[ \begin{gat 阅读全文
posted @ 2025-11-17 21:56 Yorg 阅读(110) 评论(0) 推荐(0)
摘要:思路 太猎奇 考虑我们应该会 \(\mathcal{O} (\textrm{障碍物数}^2)\) 的做一次问题 但是这类问题其实还有一种 \(\mathcal{O} (\textrm{面积})\) 的做法 具体的, 令 \(f_{i, j}\) 表示 \((i, j)\) 这个点作为右下角时的最大正 阅读全文
posted @ 2025-11-12 15:52 Yorg 阅读(20) 评论(0) 推荐(0)
摘要:思路 怎么还有字符串领域 \(\text{gunmu}\) 但是这题和字符串没啥关系 不难发现对于一个串 \(S\), 求 \(B(S)\) 的方法就是简单的贪心顺序/逆序匹配尽量多的模式串 想到拆成若干个串之后算贡献, 然后被击毙了 be ss be ie ss ie 黑人问号? 那咋做呢? 显然 阅读全文
posted @ 2025-11-10 11:46 Yorg 阅读(11) 评论(0) 推荐(0)
摘要:思路 不难想到一个记录前缀最大值的 \(\text{dp}\), 但是不难发现所有值域相关算法全部倒闭了 离散化之后变成每次可以选一个值域区间, 然后值域 \(\to \,n\) 令 \(f_{i, j}\) 表示处理到第 \(i\) 个位置, 且当前前缀最大值已经到达值域区间 \(j\) 的方案数 阅读全文
posted @ 2025-11-07 11:26 Yorg 阅读(5) 评论(0) 推荐(0)
摘要:思路 \(f(n)\): \(n\) 个位置中 \(0\) 号勋章出现偶数次的方案数 \(g(n)\): \(n\) 个位置中 \(0\) 号勋章出现奇数次的方案数 \[f(n) = m \cdot f(n-1) + g(n-1) \\ g(n) = f(n-1) + m \cdot g(n-1) 阅读全文
posted @ 2025-11-05 16:53 Yorg 阅读(8) 评论(0) 推荐(0)
摘要:思路 最终答案为: [ ans = \sum_{i} \left( \left( \sum x_i \right)^2 + \left( \sum y_i \right)^2 + \left( \sum z_i \right)^2 \right) ] 其中对于同一个 ( i, x_i, y_i, z 阅读全文
posted @ 2025-10-21 19:24 Yorg 阅读(13) 评论(0) 推荐(0)
摘要:思路 考虑直接做是简单的背包 \(\rm{dp}\) 如果我们不想使用高精度, 就必须找到一种优化方案 观察以下柿子 \[ \begin{gather*} & \sqrt[\sum_{i \in \mathbb{S}} b_i]{\prod_{j \in \mathbb{S}} a_j} \\ =& 阅读全文
posted @ 2025-10-17 16:46 Yorg 阅读(18) 评论(0) 推荐(0)
摘要:思路 不难发现等价于划分序列, 对序列内部做异或和, 求本质不同的最终序列的数量 考虑去重, 子序列计数去重用的是钦定尽量往前匹配 本题中, 对于任意一种最终序列, 我们可以限制每个划分块都必须是最小的, 也就是攒够要的赶紧跑路 也就是若要 \(1\), 就找到后面第一个 \(1\) 划分, 若要 阅读全文
posted @ 2025-10-14 22:03 Yorg 阅读(20) 评论(0) 推荐(0)
摘要:实质上是最多能找到多少个连续子段和为 \(p\) 的倍数 太聪明了 阅读全文
posted @ 2025-10-10 16:26 Yorg 阅读(10) 评论(0) 推荐(0)
摘要:思路 发现吃马不好维护, 考虑直接状态压缩马的存活情况, 可以做到 \(\mathcal{O} (n^2 2^m)\) 考虑进一步处理, 发现由于你的棋子不能回头, 吃掉一个马后, 最多走三步就跳出了马的范围, 所以我们可以直接把前两步的路线塞到状态里 思路就是吃马能影响到的位置有限, 只要存储这有 阅读全文
posted @ 2025-10-07 20:03 Yorg 阅读(10) 评论(0) 推荐(0)
摘要:前言 心态: 冷静, 耐心, 放下 策略 停滞 数据检验, 关键步记录, 简化表述 思路 首先简化问题, 把无用的被包含的字符串去掉 这一步具体的实现方式是拼到一起之后做 \(\rm{KMP}\) 现在如果只有一个字符串, 那么显然答案就是它的最短循环节 如果有多个字符串, 如何做? 考虑最优解的构 阅读全文
posted @ 2025-07-15 11:23 Yorg 阅读(20) 评论(0) 推荐(0)
摘要:思路 发现把有向图的可达性当成偏序集来看的话 本题求最大的链, 等价于求最小的反链划分 显然可以 \(\mathcal{O} (n^22^n)\) 的找每个集合是否能构成反链, 也即能否两两不可达 等价于找任意两个没有直接的无向边相连的集合 求划分是一个经典的超集 \(\rm{dp}\), 是 \( 阅读全文
posted @ 2025-07-14 11:52 Yorg 阅读(16) 评论(0) 推荐(0)
摘要:前言 心态: 冷静, 耐心, 放下 策略: \(50\) 停滞: \(20\) 数据检验, 关键步记录, 简化表述 思路 首先, 如果知道这是一个顺序 \(\rm{dp}\) 那就随便想了 但是场上的我选择了神秘的区间 \(\rm{dp}\) 所以需要在这里区分一下区间 \(\rm{dp}\) 和顺 阅读全文
posted @ 2025-07-13 20:32 Yorg 阅读(10) 评论(0) 推荐(0)
摘要:思路 首先考虑确定情况下的处理, 发现基本没办法应用到不确定情况下 考虑另外一种做法, 对于一条路径, 其在哪些情况下产生贡献? 这个问题等价于: 设 \(S\) 为任意一条从 \((0, 0)\) 到 \((n+1, n+1)\) 的路径经过的点集, \(P\) 为 任意一种 合法障碍点集, \( 阅读全文
posted @ 2025-07-09 19:43 Yorg 阅读(11) 评论(0) 推荐(0)
摘要:前言 心态 策略: \(30\) 停滞不超过 \(15\) 数据检验, 关键步记录, 时刻简化 思路 首先考虑排序方法 对于赚钱的部分, 显然按照 \(a\) 排序 对于损失的部分, 考虑记这一部分为 \(a_{1, 2, \cdots, k}, b_{1, 2, \cdots, k}\), 记 \ 阅读全文
posted @ 2025-07-07 20:45 Yorg 阅读(10) 评论(0) 推荐(0)
摘要:前言 打的太烂了, 一定要注意策略 心态, 策略, 停滞 注意规划一下停滞时间 思路 删除一个合法括号序列, 问你删除后字典序最小的的合法括号序列是多少 我草, 场上啥都不会, 我要把失去的拿回来 考虑一下 \(n \leq 500\) 因为是取不取一个点的问题, 所以尝试类分段法 令 \(f_{i 阅读全文
posted @ 2025-07-07 19:07 Yorg 阅读(17) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2025-07-04 15:24 Yorg 阅读(1) 评论(0) 推荐(0)
摘要:前言 这题赛时是过了的, 非常磕磕绊绊, 在这理一下 思路 首先题解做法 不难发现每次落脚只可能是在萝卜或者大跳的位置 其中「大跳的位置」是不好维护的 这个时候我们发现只要指定要在哪些位置落脚, 大跳的数量是可以确定的, 于是这样列出 \(\rm{dp}\), 用一些技巧优化 然后我的做法比较神奇 阅读全文
posted @ 2025-06-18 08:40 Yorg 阅读(25) 评论(0) 推荐(0)

1 2 3 4 5 ··· 10 下一页