CSP-S 2024 第十四次
A
调整法可证只需要考虑左端点或右端点在 \(a_i\) 上的区间,考虑对于一个区间 \([l,r]\) 计算答案。
注意到对于每对相邻的数,挤压后较大者仍然大于等于较小者,所以可以分别求较大者压缩后的和、较小者压缩后的和再相减。
以求较大者压缩后的和为例,小于 \(l\) 的数变成 \(l\),大于 \(r\) 的数变成 \(r\),中间的数不变,
把所有较大数排序后,二分出两个分界点,统计答案即可。
B
设 \(f_{u,0/1,0/1,0/1}\) 表示考虑 \(u\) 子树,\(u\) 是/否匹配上,子树内最左边的叶子是/否匹配上,子树内最右边的叶子是/否匹配上的方案数。
转移有一些细节,比如说加上的子树是一个叶子或者一条链的情况。
C
为了防止 corner case,先在左右各补一列,钦定最左边的一列必走第一行,最右边的一列必走第二行,
即 \((1,0)\) 到 \((1,1)\) 的边权、\((2,n)\) 到 \((2,n+1)\) 的边权为 \(0\),\((1,n)\) 到 \((1,n+1)\) 的边权、\((2,0)\) 到 \((2,1)\) 的边权为 \(\infty\)。
考虑最小割建模。
对于 \(0\le i\le n\),由源点向 \(i\) 连边权为 \((2,i)\) 到 \((2,i+1)\) 的边权的边,由 \(i\) 向汇点连边权为 \((1,i)\) 到 \((1,i+1)\) 的边权的边,
这样保留源点到 \(i\) 的边就相当于走了 \((1,i)\) 到 \((1,i+1)\) 的边,保留 \(i\) 到汇点的边就相当于走了 \((2,i)\) 到 \((2,i+1)\) 的边。
考虑特殊限制,相当于同时保留源点到 \(i\) 的边与 \(j\) 到汇点的边时产生额外 \(c\) 的代价,由 \(i\) 向 \(j\) 连边权为 \(c\) 的边即可。
考虑 \((1,i)\) 与 \((2,i)\) 之间的边,可以发现其实就是 \(i-1\) 与 \(i\) 保留不同侧的边时产生额外代价,和特殊限制是一样的。
D
枚举众数出现次数 \(k\),考虑众数出现次数小于等于 \(k\) 的序列的 EGF,发现它是 \(\left(\sum\limits_{i=0}^k\dfrac{x^i}{i!}\right)^m\),需要求其 \(n\) 项系数。
设 \(e_k(x)=\sum\limits_{i=0}^k\dfrac{x^i}{i!}\),考虑对需要求的 \(e_k^m(x)\) 求导:
设 \(f_{m,n}=[x^n]e_k^m(x)\),对上式两边同时提取 \(n\) 项系数:
于是我们得到了 \(f\) 的递推式。
发现只需要求 \(f\) 的最后 \(n/k\) 行,所以复杂度 \(O(n^2/k)\)。总复杂度 \(O\left(\sum\limits_{k=1}^nn^2/k\right)=O(n^2\log n)\)。