随笔分类 - 动态规划-普通
摘要:题目 点这里看题目。 分析 其实是一道比较套路的题目。一开始就并不那么容易想到如下的 DP: 设 表示第 次滋水时,当前若处在 位置,可能受到的最小伤害。转移还是比较显然: \[ f_{i,j}= \begin{cases} \min_{j-T_{i}
阅读全文
摘要:题目 点这里看题目。 分析 这种问题我们通常可以考虑合法染色方案的等价条件。 一步简单的转化是,将染色看成删除。此时要求就是,如果删除一个孤立的格子且不是最后一个格子,那么其它连续段的两端的颜色必须全部不同于当前格颜色。 基于此,对于合法的染色方案,我们可以尝试构造删除方案: 除了最后一个被删除的段
阅读全文
摘要:题目 点这里看题目。 分析 首先,不难发现此题可以方便地建出网络流的图来。图中的每个节点向周围四个点连一条容量为 1 的无向边,然后 连向红色接口, 连向蓝色接口。 原题的答案便是此图上的最大流。显然原问题没法做,我们直接上最小割。 最小割本质上就是要将点拆分成两个点集。为了
阅读全文
摘要:题目 点这里看题目。 分析 这种题目显然需要转化。 考虑我们该怎么枚举区间。由于操作顺序是从前到后的,因此可以想到将一段操作区间拆分成两段操作的后缀。 那么,如何实现操作的 " 减法 " 呢?也就是说,我们应如何消去另一后缀的影响? 注意到,如果我们同时对 和 执行操作的话,
阅读全文
摘要:题目 点这里看题目。 分析 NOI 里面也有我会做的题目? 显然不能把 放到状态里面,于是考虑用活动作为状态。 :第 个活动开始的时候,位于 城市的最大愉悦值。 转移如下: \[ f(u,i)=\max_v\{f(v,i-1)+g(v,u,t_
阅读全文
摘要:题目 点这里看题目。 分析 离线的话,我们显然可以 线段树分治 + DP ,时间复杂度大概是 。 不过,既然题目明确要求在线,却还不开强制在线,我们就应该去思考一下在线算法。 显然我们需要一个 DP 去维护答案,这里不再赘述。 考虑我们直接处理的难点之一是双端队
阅读全文
摘要:题目 点这里看题目。 分析 本题有很多直接构造伪光滑数的做法,这些去网上搜一搜就好了。 这里讲一个很暴力但又很有意义的做法。 考虑到限制的特殊性,需要知道指数和,我们可以写出下面这个状态: :最大质因子刚好为 ,指数和为 的数集,此时应有 \(k\le
阅读全文
摘要:题目 点这里看题目。 分析 以下标记子串的方法为: 表示 中从 到 的字符组成的子串。用 ( 表示开区间, [ 表示闭区间。 我们不难想到一个 DP : :以 开始的后缀,结尾字符串长度为 时的最长
阅读全文
摘要:题目 点这里看题目。 分析 奇奇妙妙的题目。 直接修改树上的路径会影响到很多条边,并不方便处理。我们需要压缩受影响信息的数量。 由于对点的处理更加灵活,因而我们考虑将边权转为点权。 考虑修改树上路径经常与树上差分挂钩,我们可以猜想第一种方法:给点赋权为它到根上所有边的权的异或和。 但是没有什么用,因
阅读全文
摘要:题目 点这里看题目。 分析 出题人已经开始拿高精作为考点了吗 0pts ~ 24pts 数据太小,小到你甚至很难想到专门对付这些部分分的算法。 36pts 这应该是一个经典的问题, USACO 曾经考过类似的题目。 思想很简单,既然我们要求分出来的段单调递增,我们就把每一段的两个端点都放到状态里面。
阅读全文
摘要:题目 比赛界面。 T1 数据范围明示直接计算,问题就在如何快速计算。 树上路径统计通常会用到差分方法。这里有两棵树,因此我们可以做“差分套差分”,在 A 树上对 B 的差分信息进行差分。在修改的时候,我们就会在 A 上 4 个位置进行修改,每次修改会涉及 B 上 4 个位置的差分修改
阅读全文
摘要:题目 点这里看题目。 分析 先特判掉的情况。 首先可以考虑到一个简单 DP : :前张牌的最大贡献。 转移可以地枚举区间众数,但它不存在决策单调性,众数查询也很难优化。 考虑另一种转移。我们对于,只取它结尾的点数的后缀 \(f(i)=\ma
阅读全文
摘要:题目 点这里看题目。 分析 由于这个问题与子串相关,那么我们就先把后缀自动机给建出来。 题目条件非常特殊——“出现至少两次”。而 fail 树上一个状态的祖先状态,根据定义,至少会在当前状态中出现一次。我们便可以知道,答案所对应的状态在 fail 树上一定呈祖孙关系。 我们可以用倍增法,求出状态 \
阅读全文
摘要:题目 "点这里" 看题目。 分析 首先对于模式串建立 AC 自动机,并且计算出每个状态的贡献总和。 考虑一个朴素的 DP : :当前串长度为,匹配到上的最大答案。 设在后加入字符会转移到, DP 的转移如下: $$f(i+
阅读全文
摘要:题目 "点这里" 看题目。 分析 首先不难发现答案具有单调性,因此可以二分答案。答案上限为。 考虑如何去判断当前的答案。设这个答案为。 我们可以将一块三角形拼图看做一个向量,表示在这个拼图内走过的位移。因此我们的叠放的拼图可以看做一
阅读全文
摘要:题目 点这里看题目。 分析 不难发现,设两人取得的下标集合为和,那么符合要求的下标集合对需要满足和对应的值全部异或起来为 0 。 因此,我们可以考虑异或为的下标集合,它对答案的贡献就是。 根据这个思想,我们可以考虑如下的 DP :
阅读全文