联合省选2025题解

posted on 2025-03-19 08:21:23 | under | source

D1T1 P11830 [省选联考 2025] 幸运数字

枚举中位数 \(x\),每个二元组若取值包含 \(x\) 显然直接取 \(x\),否则贡献固定。只需满足 \(<x\)\(>x\) 的个数差不超过 \(=x\) 的即可(注意特判)。然后离散化就没了。\(O(n\log n)\)

D1T2 P11831 [省选联考 2025] 追忆

可达性用 bitset 维护,\(O(\frac {n^2}w)\)。询问分块,对于散点每次重构时先丢掉它们的贡献,询问时再算。如何重构?值域分块跑拓扑排序。认为 \(n,m,q\) 同阶,记块长 \(k\),此处复杂度 \(O(\frac {n^2}w+\frac {n^3}{k^2}+\frac{n^2}{k})\),取 \(k=n^{\frac 23}\) 则复杂度 \(O(\frac {n^2}w+n^{\frac 53})\)

D1T3 P11832 [省选联考 2025] 图排列

  • 树:树形 dp,显然每个儿子子树对应一段区间,合并相当于按首位排序然后拼接
  • 森林:处理出每个树的答案,然后相当于可以在任意空隙插入一个串,用堆处理。
  • 图:建出圆方树。每个点双必然存在一条哈密尔顿回路,该回路不能进行任何“折叠”,因此只有唯一一条。注意到若存在 K4 不可能有解,所以一定是广义串并联图容易求回路。最后稍微改一下树形 dp 即可。

\(O(n\log n)\)

D2T1

贪心先做限制紧的(即要求时间较早)肯定对。同时箱子的移动肯定走最短路径。假如路径上有其它箱子,只需将它们移到恰好不遮挡,即为等差数列。发现不用关这些箱子具体怎么移动。用线段树维护,\(O(n\log n)\)

D2T2

  • C 性质:等价于缩点后入度为 \(0\) 的点只有 \(1\) 个,枚举这个集合 \(S\)。拆成三部分概率:\(S\) 构成强连通分量(主旋律)、\(S\) 可到达其它所有点(经典容斥,转置变为 \(O(3^n)\))、\(S\) 以外点不可到达 \(S\) 的点(容易计算)。

  • trick:有关 MST 计数问题,考虑按边权分层。

  • 考虑判定新图,对每个 \(k\),需满足 \(\le k\) 的边构成的图的弱连通性与原图 \(\le k\) 边构成的子图的连通性相同。同时需满足每个连通块存在 OST(就是 C 性质那个),这对应最小外向生成树的一个连通块。

  • 进一步引入“当前可能成为根的集合”。已知 \(k\) 的情况,现在添加 \(k+1\) 边,会有若干连通块合并。将连通块视作点,只有指向其它块的根集合的边才有意义。那么此时只有在 \(k\) 时合法、且所属连通块对应的点属于新图上唯一的入度 \(0\) 的强连通分量。

  • 开始计数。枚举合法点集 \(S\),分为四部分:\(S\) 原先合法、\(S\) 能走到其它连通块、\(S\) 强连通、\(S\) 外的连通块不能到达 \(S\)。稍微魔改一下 C 性质即可。

看似 \(O(n3^n)\),实际 \(O(3^n)\)

D2T3

重点在于注意到“关键元”,从而对计数划分阶段。

我们称原序列的最大值为“关键元”,分别为 \(a_1\dots a_n\)。可以发现,序列的变化被这些“关键元”划分为了若干个阶段。不同阶段的序列不可能相同。

接下来,考虑被夹在“关键元”中间的连续段。有一个是首尾相接的。当 \(a_1\) 被操作 \(2\) 次后,所有连续段都会被遍历到一次。显然可以让连续段在第一次遍历到时就确定方案,此后只要一直保持就好了无需再变化。

对于连续段内部的方案,直观的想法是操作位置不同方案不同,不难感性理解。当然特判一下这些元素不能被删完,也就是限制选取的数的大小。所以建树,让一个点连向左边第一个不小于它的表示必须先删掉它,不存在就连虚拟根,这样方案即为包含根的连通块个数。那么是 \(O(n^2)\) 的(枚举阶段并树上 dp)。

现在只需计算 \(a_1\) 未被操作 \(2\) 次的情况。有简单的线性 dp,转移枚举上一个操作位置即可。注意一下 \(1\) 的情况,要确定选了 \(1\) 之后不能选 \(>1\) 的数,因为这样没有必要选 \(1\) 了,会算重。换句话说,选 \(1\) 的唯一意义就是删去,之后没有机会删的时候我才有必要操作它。

那么又有一个烦人的问题,开头段的 \(2\) 转一圈后变成了 \(1\)。所以还要特殊处理一下。

\(O(n^2)\),细节好多不想写 qwq。

posted @ 2026-01-14 18:08  Zwi  阅读(0)  评论(0)    收藏  举报