2025.5.8 模拟赛
5.8 模拟赛
split
不错的签到题。
贪心的,选择 \(a_i=2i-1,b_i=2i\) 是最优的。
不妨钦定 \(a_i\) 在 \(b_i\) 前面, \(a_i\) 的排序方案是 \(n!\)。
下面分配 \(b_i\) 的位置,发现这就是左右括号匹配,方案数是卡特兰数 \(\frac{2n\choose n}{n+1}\)。
答案是 \(n!\frac{2n\choose n}{n+1} \cdot 2^n\),直接计算输出即可。
path
原题 [JOI Open 2022] 放学路,邹邹提过。
真难则反,考虑不存在严格次短路的图有什么性质。
部分分提示我们考虑广义串并联图和点双。
注意到对于 \(1\to n\) 路径上的环,一定有“两半”边权和相等。
讨论发现,\(1\to n\) 路径上的点双,一定不存在交叉/跨越中线的非环边,也就是广义串并联图。
不妨加入一条 \((1,n,dis(1,n))\) 的边,这样 \(1,n\) 在同一个点双里,且中线就是 \((1,n)\)。
对这个点双使用广义串并联图方法,叠合重边时要求边权相等,且 \(1,n\) 不能被删除。最后如果只剩 \(1,n\) 两个点,则满足要求。
预处理部分需要算最短路,找点双,建圆方树(找点双内部的边)。
复杂度大概是 \(O(m\log m)\)。
cut
其实不是很难。
一段序列合法的条件是 \(|X|\) 是偶数且不存在绝对众数。
容易得到 \(n^2\) dp。
没有绝对众数是不好处理的,不妨考虑容斥掉有绝对众数的。
枚举绝对众数的种类,得到:
看似复杂度还是 \(O(n^2)\),实则不然。
key:前缀绝对众数的种类是 \(O(\log n)\) 的
于是可以 cdq 分治,这样有可能产生贡献的 \(x\) 只有 \(O(\log n)\) 种,可以枚举 \(x\) 进行转移。
找到这些 \(x\) 是容易的,维护 \(cnt\) 即可。
判断 \([j+1,i]\) 的绝对众数是否为 \(x\) 使用摩尔投票,\(=x\) 的贡献 \(1\),\(\neq x\) 贡献 \(-1\),要求和 \(>0\)。可以处理 \(sum(i)=\sum\limits_{s_j\ge i}f(j)\),直接转移即可。
复杂度 \(O(n\log^2 n)\),常数较小,可以通过。

浙公网安备 33010602011771号