CSP-S 2025 题解

CSP-S 2025 题解

club

观察 \(\frac{n}{2}\) 的性质:显然最强的就是至多有一门课,使得有些人选不到这一门,且另外两门随便选。找出这门课,在若干个人中要让一些人不选最好的而是选次好的(一定合法),拿个堆维护反悔贪心即可。时间复杂度 \(O(n\log n)\)

road

注意到两个边集合并起来求最小生成树,等于两个边集都先求最小生成树,并起来再做一次最小生成树,那么 \(O(2^k)\) 枚举就完了。时间复杂度 \(O(2^k n\alpha(n))\)

replace

受到 \(t_1,t_2\) 的启发,对 \(s_1,s_2\) 做同样的操作:找到最长公共前缀和最长公共后缀(特判相等),令 \(s_1=ABD,s_2=ACD\),那么必然有 \(t1=*_1ABD*_2,t_2=*_1ACD*_2\),AC 自动机匹配一下即可。时间复杂度 \(O(n+q+L)\)

employ

限制类似以下三种之一 \(\le x_i,\ge x_i,\emptyset\),想到贡献延后计算,但一般的状态只能做到 \(O(n^5)\) 或者 \(O(n^4)\)

\(f_{i,j,k}\) 表示前 \(i\) 个位置,有 \(j\) 个人没入选,\(c\in [0,j]\) 的人已经放进去了 \(k\) 个的方案数。

转移:

  • 如果 \(s_i=1\),那么情况分为选择 \(\le j\)\(>j\),对应不如选和入选;
  • 如果 \(s_i=0\),那么无论如何都不如选,分成 \(<j+1,=j+1,>j+1\) 讨论。

如果 \(j\to j+1\),需要枚举 \(l\) 表示 \(j+1\) 在前面放了多少个,当然组合的式子也就要考虑选位置和选人。

因为 \(\sum l=O(n)\),时间复杂度为 \(O(n^3)\)

posted @ 2025-11-11 20:08  今天你学废了么  阅读(0)  评论(0)    收藏  举报