Loading

上一页 1 2 3 4 5 6 ··· 33 下一页
摘要: 结论是建出笛卡尔树后每个结点的深度相当于从这个结点向前向后严格前后缀最大值个数,那么路径长度等价于这个,我们只需要快速维护这个即可。 这是单侧递归线段树模板题,使用线段树即可做到 \(O(n \log^2 n)\)。 阅读全文
posted @ 2025-11-27 17:18 Alexande 阅读(2) 评论(0) 推荐(0)
摘要: 一个经典结论是图上所有环都可以被简单环组合出来。 那么本题相当于要求一条边必须出现在所有的奇环中并且不能出现在所有的偶环中,使用树上差分求解即可。 阅读全文
posted @ 2025-11-27 17:16 Alexande 阅读(4) 评论(0) 推荐(0)
摘要: 求连了一条边后,所有点到这个环的距离最大值。 那么你发现难点其实在于求一个点挖掉一个子树后的答案,对于一条链求这个东西其实并不简单。 一个好做的方法是,我们对于每个结点记录它父亲挖掉它的最大值,这样每个结点的值就都是唯一的了,我们使用倍增求个最大值即可。 遇到不好维护的问题,考虑转化对象,使得求的东 阅读全文
posted @ 2025-11-27 17:15 Alexande 阅读(3) 评论(0) 推荐(0)
摘要: 首先发现是一个区间 DP 的形式,那么这些限制就是限制了某些位置不能转移,可以差分一下看哪些位置可以转移。 阅读全文
posted @ 2025-11-27 17:13 Alexande 阅读(3) 评论(0) 推荐(0)
摘要: 列出区间 DP 转移式,打表发现可以四边形不等式优化,于是优化到 \(O(n^2)\)。 阅读全文
posted @ 2025-11-27 17:11 Alexande 阅读(2) 评论(0) 推荐(0)
摘要: 正着不好考虑,我们倒着 DP。 设 \(f_{i, s}\) 为距离结束还有 \(i\) 秒,目前状态为 \(s\) 是否可行。这个状态的好处是,转移时如果要操作一个点,那么一直到结束时哪些结点的状态因此而改变是可以确定的,每次转移枚举哪些点操作,那么预处理一下就是 \(O(2^n n^2)\)。 阅读全文
posted @ 2025-11-27 17:09 Alexande 阅读(1) 评论(0) 推荐(0)
摘要: 首先有个显然的贪心做法是: 每次确定一组的左端点 \(l\),尽可能向右拓展,中间的部分就是重排不等式。 但是你发现复杂度是 \(O(n^2 \log n)\) 的,不能通过这个题。 比较有启发意义的一点是,考虑二分这个过程,但是你发现仍然是 \(O(n^2 \log n)\) 的,因为你最坏情况下 阅读全文
posted @ 2025-11-27 17:07 Alexande 阅读(1) 评论(0) 推荐(0)
摘要: 如果你知道了 \(ans\),那么把所有边的 \(x\) 调成 \(ans\) 一定不劣。 我们可以二分 \(ans\),然后再将每条边的边权设为 \(a_ians + b_i\),对于每个点跑最短路即可,但是你发现这样复杂度是 \(O(nm \log n \log V)\) 的,但由于 \(V\) 阅读全文
posted @ 2025-11-26 08:58 Alexande 阅读(5) 评论(0) 推荐(0)
摘要: 目前只会 \(70pts\)。 考虑设 \(f_{i, j, k}\) 表示填到第 \(i\) 个数,最小值为 \(j\),最大值为 \(k\) 的方案数是多少,然后如果 \(op = 2, 3\) 可以直接转移,\(op = 0, 1\) 是不是还得数据结构辅助一下做到 \(O(n^3)\)。 然 阅读全文
posted @ 2025-11-25 17:19 Alexande 阅读(3) 评论(0) 推荐(0)
摘要: 考虑二分答案,二分差值。 但是你其实知道了了差值也不好做,假设我们现在知道可选长度区间 \([l, r]\),我们就可以贪心维护每次覆盖的左端点和右端点来判断是否可行。 如果我现在知道 \([l, r]\),我不仅可以判断其是否可行,假若其不可行,我还可以知道是 \(l\) 大了还是 \(r\) 小 阅读全文
posted @ 2025-11-25 15:28 Alexande 阅读(4) 评论(0) 推荐(0)
摘要: 首先我们思考如果没有 I 和 C 咋办。 那么显然,我们只需要对于每个位置,记录一个偏移量,更准确的说,通过偏移量计算最初某个位置最后被移动到了哪里。 加上 I 和 C 思考一下咋办。 我们发现 I 和 C 其实相当于对行和列做了一个变换,但是这个变化过于复杂,我们不好通过记录偏移量这种简单的技巧去 阅读全文
posted @ 2025-11-25 14:45 Alexande 阅读(1) 评论(0) 推荐(0)
摘要: 首先显然缩成一段段的,发现长度 \(\ge 2\) 的和 \(= 2\) 没区别,可以转化一下,然后就是不难发现每次会删去一个段。 那么将操作变成如下: 你现在有一些 \(1, 2\) 交错的段,你可以每次删除一个段,然后将左右两端合并成一个 \(2\) 段,每次只能删除 \(2\) 段,问你能否构 阅读全文
posted @ 2025-11-24 21:52 Alexande 阅读(4) 评论(0) 推荐(0)
摘要: 显然对于每一个位置求一个向上扩展位置,那么用单调栈维护后缀 \(\min\) 和就做完了。 算典题。 阅读全文
posted @ 2025-11-24 21:41 Alexande 阅读(4) 评论(0) 推荐(0)
摘要: 单 \(\log\) 选手前来报到。 首先区间类问题都可以考虑扫描线或者前缀和,这里显然没有可减性,我们考虑扫描线。 令此时扫到的 \(r\) 为右端点,我们如何寻找一个左端点,更进一步,因为有 \(f\) 单调不减,所以我们只需要找到最靠右的左端点即可(重排不等式)。 此时我们先不要求找到左端点, 阅读全文
posted @ 2025-11-23 21:15 Alexande 阅读(6) 评论(0) 推荐(0)
摘要: 先将 \(a\) 排序。 显然,取 \(a_n + 1\) 是一种比较不错的方案,但此时如果最小值很大就会寄掉。 此时 \(p\) 只能够取 \(\le a_n\) 的数,无论取什么最大值都不会超过严格次大值(分类讨论即可),此时让 \(p = a_n\) 即可取到另一种最优解。 阅读全文
posted @ 2025-11-23 21:07 Alexande 阅读(5) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 ··· 33 下一页