2021.12.16 模拟赛
今日份自闭。
T1 排列2
知道析合树的话就有方向了,其实就是在 DP \(n\) 个点有多少种不同形态的析合树。
析合树就是把连续段看作点,儿子有序为合点,否则为析点。那么合点至少有 \(2\) 个儿子,析点至少有 \(4\) 个儿子(例:\(2,4,1,3\))。
DP 设 \(f_i(n)\) 表示根有 \(i\) 个儿子 \(n\) 个点的析合树个数,转移就是从 \(i-1\) 加一个儿子,卷卷卷。
根节点有 \(4\) 个儿子及以上的树,按根节点是析还是合,要算两遍。所以只需要考虑 \(2\)、\(3\)、至少 \(4\) 共三种状态,\(\mathcal O(n^2)\)。
T2 升级
设 \(f_i\) 为 \(i\) 到 \(n\) 的期望步数不好推。
设 \(f_i\) 为 \(i\) 到 \(i+1\) 的期望步数,可以得到
\[f_i=p+(1-p)\left(1+\sum_{j=\max(i-a,0)}^if_j\right)
\]
\[f_i=\frac 1p+\frac{1-p}{p}\sum_{j=\max(i-a,0)}^{i-1}f_j
\]
矩阵转移可以快速幂,\(\mathcal O(a^3\log n)\)。
还有一些零碎的小 Subtask 要特判。吐槽出题人 std 写挂了。
T3 定价
似乎就是暴力模拟,码农题。
等我什么时候精力旺盛了再写吧。