随笔分类 - Codeforces
摘要:Nearest Leaf 没想到在dfs的过程中用线段树维护所有点到当前点的距离。
阅读全文
摘要:Recursive Queries 刚开始把最大位置看成最大值, 我想这怎么写啊。。。 如果是最大位置的话, 我们能计算区间内每个值作为最大值的贡献, 然后拆成右边边第一个比它大的下标减去左边第一个比它大的下标, 然后离线之后就可以树状数组维护了。
阅读全文
摘要:Fire in the City 二分答案, 用扫描先加线段树去check
阅读全文
摘要:Superhero's Job 首先要看出来是个积性函数, 我这个都没看出来, 我好菜啊。 看出来之后随便dp一下就好了。
阅读全文
摘要:首先肯定是将老鼠和洞都排好序, dp[ i ][ j ] 表示处理了 前 i 个洞, 进去 j 只老鼠的最小距离和, 很明显处理先处理靠前的老鼠。 然后观察一下这个dp, 发现它满足决策单调性, 然后直接上了个分治, 然后 T 了。 然后继续观察了半天, 发现对于, dp[ i - 1 ][ 0 ]
阅读全文
摘要:Parcels 感觉很巧妙的题呀。。 没想到转移的时候也需要一个dp, 就怎么算怎么感觉复杂度不对。。 dp[ i ][ s ] 表示 i 作为最底层的块, 它上面最多能放重量为 s 的最优值。 我们将包裹先按R小排, 再按L大排, 这样对于 i 这个包裹来说, 能放在它上面的都在它左边。 对于dp
阅读全文
摘要:World of Darkraft - 2 每个武器可以独立考虑贡献, 我们算单个武器的贡献。 考虑最朴素的dp, dp[ i ][ j ] 表示当前还有 i 个怪没有打, 当前的武器等级是 j 最后获得硬币的期望。 这显然是个n ^ 2的dp, 但是通过观察我们能发现, j 达到很大的概率非常小,
阅读全文
摘要:Periodical Numbers 我们先按长度分类对于当前处理的长度k, 我们令 F[ i ] 为有长度为 i 的循环节的方案数。 然后容斥出f[ i ] 表示最小循环节是 i 的方案数, 然后加起来。
阅读全文
摘要:Positions in Permutations 先dp出选 k 个的方案数, 这个很简单, dp[ i ][ j ][ u ][ v ]表示到 i 为止选了 j 个, i - 1的选取情况是 u, i 的选取情况是 v 的方案数。 然后最后容斥一下, 容斥系数是 C(i, k)。(虽然我不会证明
阅读全文
摘要:Delivery Club 首先二分答案, 我们考虑dp去check 我们可以发现所有状态要从两个点在 i 和 i - 1转移过来。 所以我们令dp[ i ] 表示 能否到达两个快递员在分别 i 号点 和 i - 1号点的状态。 转移就是把在 i 号位置的快递员不断地往后移, 如果能移到 j &&
阅读全文
摘要:Connecting Vertices 这种题就是看一眼就知道区间dp, 写一天也写不出来。。 f[ i ][ j ]表示区间[ i, j ] i 和 j 连边所构成的方案数。 g[ i ][ j ]表示区间[ i, j ] i 和 j 不连边所构成的方案数。求g 的时候枚举 j 和 k (并且这个
阅读全文
摘要:Fibonacci String Subsequences 读题把子序列读成子串, 码都码完了, 样例不对, 人傻了。 我dp的是每个匹配串的贡献, 然后发现子序列的话算贡献维护不了。。 没想到直接dp的就是在子序列中出现的次数。 dp[ i ][ l ][ r ] 表示的是在 F[ i ]这个串中
阅读全文
摘要:Tanks 最关键的一点就是怎么判方案是否存在。。 只要存在若干个坦克之和的sum % k == v % k 就有解, 否则无解。 我怎么想不到呢。。。
阅读全文
摘要:Vasya and Maximum Matching 首先能观察出, 只有完美匹配的情况下方案数唯一。 dp[ i ][ 0 ], dp[ i ][ 1 ], dp[ i ][ 2 ] 分别表示 对于 i 这棵子树 0: 不向上连边完成 1:向上连边完成 2:向上连边未完成 的方案数
阅读全文
摘要:Road Projects 根据基环分类讨论讨论。。
阅读全文
摘要:Flights for Regular Customers 临接矩阵的 k 次 就是 恰好 走 k 步从 i 走到 j 的方案数, 方案数在这里并不关键, 所以可以把它变成01矩阵。 一个很直观的想法是用二分取check它, 但是这并不单调。。 然后就不会了。。 我们可以把G[ n - 1] [ n
阅读全文
摘要:Tree Generator™ 两点间的距离为 depth[ u ] + depth[ v ] - 2 * depth[ lca ] 给的字符串可以看成dfs序, 对于x, y 下标, x < y, 他们的lca的肯定在x - y 之间并且dpeth最小。 问题转换成a[ x ] - 2 * a[
阅读全文
摘要:Bracket Substring 这么垃圾的题怎么以前都不会写啊, 现在一眼怎么就会啊。。。。 考虑dp[ i ][ j ][ k ][ op ] 表示 已经填了 i 个空格, 末尾串匹配到 所给串的 第 j 个, 已经放了 k 个左括号, 是否存在所给串的方案数。 因为不匹配的不是从头开始的,
阅读全文
摘要:Streets and Avenues in Berhattan 我们首先能发现在最优情况下最多只有一种颜色会分别在行和列, 因为你把式子写出来是个二次函数, 在两端取极值。 然后我们就枚举哪个颜色会分别在行和列。 然后枚举这种颜色在行的个数, 再求出需要在列放的最少的这种颜色的个数。 这个我们可以
阅读全文
摘要:Zublicanes and Mumocrates dp[ i ][ j ][ k ] 表示 以 i 为根的子树, 占领 i 的 是 j 并且第一个人占了 i 子树的 k 个叶子节点的最小值。 然后随便d 1 d 就好了。
阅读全文