2021-03-16 模拟赛总结
T1 color
我很快就想到了一个 O ( n 2 ) O(n^2) O(n2) 的做法,骗了 50 分。
虽然题解里说正解是从 n 方的做法中优化来的,但是我想的做法跟题解做法大相径庭,根本无法优化:
把必须出现的颜色看成是区间互相包含关系,于是类似括号序列,每种颜色有个左边界和右边界。把它看成是树上加点,再记录一下叶子节点数,把一号点去掉,当成 0 号点,方便计算答案。设 dp[i][j] 为出现 i 种颜色,即树中有 i+1 个点时,有 j 个是叶子的方案数,那么新加入的点就有两种可能,成为之前某个点最大的弟弟,或者成为某个点的大儿子, d p [ i ] [ j ] = d p [ i − 1 ] [ j ] ∗ j + d p [ i − 1 ] [ j − 1 ] ∗ ( 2 ∗ i − j ) dp[i][j]=dp[i-1][j] * j + dp[i-1][j-1] * (2*i-j) dp[i][j]=dp[i−1][j]∗j+dp[i−1][j−1]∗(2∗i−j),然后对答案的贡献为 d p [ i ] [ j ] ∗ C ( n − 1 , i − 1 ) ∗ C ( m + j , i ∗ 2 ) dp[i][j] * C(n-1,i-1) * C(m+j,i*2) dp[i][j]∗C(n−1,i−1)∗C(m+j,i∗2)
该做法与 n 2 n^2 n2 死死绑定,无法优化。
T2 fenwick
没有细推,于是一直把一个错误结论相信了一个半小时,最后连最显然的暴力都没打,只拿了 10 分。
T3 gift
不会 polya 定理,不会 Burnside 引理,不擅长打暴力,于是只有 5 分了。