Loading

上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 45 下一页
摘要: 首先我觉得非常重要的一点就是分析出这个题不能 polylog 做。 先辈曾经说过,与集合类操作有关的复杂问题基本上不能 polylog 做,这个题就有点倒水清空的意思。不过更直接的步骤是,你感觉自己 polylog 不太会,于是想一想根号做法。 我只会根号 log。 首先经典结论是每一段长度单调不减 阅读全文
posted @ 2025-12-18 16:30 Alexande 阅读(22) 评论(0) 推荐(0)
摘要: 人话就是求最小生成不是树。 首先肯定按照边权排序,想着像之前求最小生成树那么搞,但是你并非很好判断我到底要跳过哪条边,所以我们一开始就先选前 \(n - 1\) 小的 \(n - 1\) 条。 这个时候如果不是树就 out 了,接下来讨论是树的情况。 此时问题需要简化为你要在目前这棵树上删除一些边再 阅读全文
posted @ 2025-12-18 15:58 Alexande 阅读(7) 评论(0) 推荐(0)
摘要: 网格走路问题的多维版本。 我们说过,如果网格是二维的,复杂度可以做到 \(\sqrt {nm}\),这是因为通过根号分治有 DP 和容斥的两种解法,这里都需要运用到。 将所有坏点排序之后 DP 即可。 阅读全文
posted @ 2025-11-28 20:54 Alexande 阅读(7) 评论(0) 推荐(0)
摘要: 记录一个 DP 表示匹配信息。 然后枚举开头位置,路径形态只有那么几种,枚举一下即可。 可 pku 那个题差不太多。 阅读全文
posted @ 2025-11-28 20:38 Alexande 阅读(5) 评论(0) 推荐(0)
摘要: 设 \(f_i\) 表示第一次到达 \(i\) 的所用时间,初始 \(f_1 = 0\)。 首先考虑运动的形态会是什么样子,应该是第一次走到 \(i\),然后不断的跳 \(p_i\),直到再一次走到 \(i\),再向 \(i + 1\) 走。 其实转移是很好转移的,你可以看做跳到 \(p_i\) 就 阅读全文
posted @ 2025-11-28 20:13 Alexande 阅读(14) 评论(0) 推荐(0)
摘要: noip 前一天锻炼手感。 设 \(f_i\) 为 \(i\) 到终点的答案。 那么每次转移 \(u\) 这个点的时候,令其出点 \(v\) 的贡献为 \(w + f_v\),那么敌人一定会选择最小的 \(d\) 个点办掉,此时你的答案一定为第 \(d + 1\) 小的点,维护一下即可。 具体来说建 阅读全文
posted @ 2025-11-28 19:59 Alexande 阅读(9) 评论(0) 推荐(0)
摘要: 不关心序列形态,将 \(c_i\) 也就是 \(i\) 的出现次数记录下来。 那么每次操作就是选择 \(c_i > k\) 的 \(i\),分裂成 \(1\) 个 \(i\) 和 \(c_i - 1\) 个 \(i + 1\)。 从小到大遍历 \(i\),可以记录一个目前剩下多少个元素和操作次数,由 阅读全文
posted @ 2025-11-27 22:59 Alexande 阅读(5) 评论(0) 推荐(0)
摘要: 把问题转化为假设最后确定 \(p\),那么每个元素从 \(0, p - a_i, a_i - p\) 中选取一个。 那么肯定是排序后一段前缀选择 \(p - a_i\),一段后缀 \(a_i - p\),贪心一下即可,你嫌麻烦可以直接三分。 阅读全文
posted @ 2025-11-27 21:42 Alexande 阅读(11) 评论(0) 推荐(0)
摘要: 限制分开讨论。 首先对于一个位置,如果两个地方的限制都有,那么填 \(k + 1\),因为此时不能填 \(< k\) 的数,也不能填 \(k\),因此填 \(k + 1\)。 如果什么限制都没有,那当然是填什么无所谓。 重要的就是只有两个限制的其中一个该怎么办。 如果只有 \(\min\) 的限制, 阅读全文
posted @ 2025-11-27 20:44 Alexande 阅读(17) 评论(0) 推荐(0)
摘要: 太非人类了。 首先想如果给定一个排列如何简单的判断合法,再困难的计数题如果连这个都不可以简单计数那就完犊子了。 经典结论是交换距离为 \(\sum [p_i > i](p_i - i) \le m\),容易证明充分性,必要性可以感性理解,主要就是任意一对元素的交换距离之和。 你还发现一个事情就是必须 阅读全文
posted @ 2025-11-27 19:50 Alexande 阅读(19) 评论(0) 推荐(0)
摘要: 考虑轮廓线 DP。 阅读全文
posted @ 2025-11-27 17:31 Alexande 阅读(9) 评论(0) 推荐(0)
摘要: 像对偶图一样,转化成最小生成树问题(最小瓶颈生成树)。 稠密图求最小生成树使用 Prim 算法可以做到 \(O(m + n^2)\)。 阅读全文
posted @ 2025-11-27 17:30 Alexande 阅读(8) 评论(0) 推荐(0)
摘要: 考虑按照列 DP,设 \(f_{i, l, r}\) 为到了第 \(i\) 列左边放置了 \(l\) 个,右边放置了 \(r\) 个,顺序转移是 \(O(n^3)\) 的。 你发现有一维是不需要的,可以直接算出来,去掉即可,时间复杂度 \(O(n^2)\)。 阅读全文
posted @ 2025-11-27 17:29 Alexande 阅读(5) 评论(0) 推荐(0)
摘要: 首先考虑 DAG 计数,设 \(f_{s, s'}\) 表示目前确定的点集为 \(s\),最后一层点为 \(s'\),因为我 DAG 计数按照拓扑序一定是一层层转移的,你会发现这个状态数是 \(O(4^n)\),直接爆炸了。 比较神秘的优化是,去掉 \(s'\) 这一维,转移可能有重,我们直接容斥, 阅读全文
posted @ 2025-11-27 17:26 Alexande 阅读(8) 评论(0) 推荐(0)
摘要: 考虑将 \(q\) 转置一下变成每个 \((i, i + 1)\) 在什么时候交换,显然数量一样。 那么你考虑到一个点 \(p\) 到达它应该到的位置 \(t\),其中相当于限制一条链上的交换时间必须从小到大,如果不满足这个限制显然输出 \(0\)。 现在问题变成了已知相邻两个位置大小关系求排列个数 阅读全文
posted @ 2025-11-27 17:24 Alexande 阅读(4) 评论(0) 推荐(0)
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 45 下一页