集训队胡策 2024
\(\rm Round\ 1\)
基础 ABC 练习题
首先考虑给定 \(\verb!ABC!\) 和 \(\verb!BCA!\) 的个数如何计数。
设个数分别为 \(x\) 个和 \(y\) 个,\(z=n-x-y\)。
注意到一开始的 \(x\) 个 \(\verb!A!\) 肯定给 \(\verb!ABC!\),最开始的 \(y\) 个 \(\verb!B!\),\(z\) 个 \(\verb!C!\) 同理。
分配完每个子序列的第一位之后,第二位也是同理,也就是说,最优的分配方案是固定的,因此对于特殊性质,直接判断即可。
这样就能解决没有 \(\verb!?!\) 的部分,获得高达 \(40\) 分。
考虑有 \(\verb!?!\) 且 \(|S_1|=|S_2|=n+1\) 怎么做,寻找充要条件:
记 \(sum_{o,i}\) 表示 \(s\) 序列前 \(i\) 个数中 \(o\) 的出现次数,记:
\[A=\max sum_{a,i}-sum_{c,i} \]\[B=\max sum_{b,i}-sum_{a,i} \]\[C=\max sum_{c,i}-sum_{b,i} \]合法的充要条件是:\(A+B+C \le n\)。
容易发现至少需要 \(A\) 个 \(\verb!ABC!\),\(B\) 个 \(\verb!BCA!\),\(C\) 个 \(\verb!CAB!\),故必要性显然,完整证明。
对于一般情况,必要条件是:\(x \ge A,y \ge B,n-x-y \ge C,A+B+C \le n\),同样可以证明是充分的。
直接按照这个 DP 复杂度过高,因此考虑容斥一下,现在我们的要求的是 \(A=x,B=y,C \le z\) 的方案数,二维容斥一下就做完了。