联合省选 2020 题解

先更点口胡题解。

Day1T1

\(pre_{1/2},suf_{1/2}\)分别表示两种属性的战士的能量前/后缀和,找到最大的\(i\)满足\(pre_{1,i} \le suf_{2,i}\),也即\(pre_{1,i} +pre_{2,i} \le sum_2\)

只需要维护支持单点修改和二分的数据结构即可。树状数组是一种可行的选择。

Day1T2

把普通多项式多项式转化成组合数多项式的形式,即\(f(k)=\sum_{i=0}^mb_i\binom{k}{i}\)

于是

\[\sum_{k=0}^nf(k)\times x^k \times \binom{n}{k}=\sum_{k=0}^n\sum_{i=0}^{\min(m,k)}b_i\binom{k}{i}x^k\binom{n}{k}\\=\sum_{i=0}^mb_i\binom{n}{i}\sum_{k=i}^{n}x^k\binom{n-i}{k-i}\\=\sum_{i=0}^mb_i\binom{n}{i}x^{i}(x+1)^{n-i} \]

计算\(\{b_i\}\)的过程中不需要使用到除\(1\)以外的数的逆元,因此对模数没有要求。

Day1T3

根据拟阵那套理论,限定礼品集合\(A\)\(B\)为“最小”和“最大”的等价条件是:对于任意\(A\)中元素\(x\)和非\(A\)中元素\(y\),若\(A\cup\{y\}\setminus\{x\}\)是一个基,那么\(val_y \ge val_x\);集合\(B\)同理。

此时问题相当于给出若干偏序关系和调整权值的代价函数,要求最小化调整代价。

由于代价函数是凸的,可以运用保序回归那套理论,对所有礼品的权值做整体二分,每次用网络流求一个最小权闭合子图作为权值划分的依据。

Day2T1

状压即可。

Day2T2

只需要实现一个数据结构维护一个无序数集,支持全体数字加一、快速合并、查询所有数异或和。把二进制位反过来建\(\text{01-Trie}\)即可。

Day2T3

求图中所有生成树边权和只需要令每条边边权为\(1+w_ix\)后在模\(x^2\)下做普通矩阵树即可,时间复杂度\(O(n^3)\)

加入了\(\gcd\)一项后套路地进行一次莫比乌斯反演,可以发现答案为\(\sum_d\varphi(d)\times [\mbox{所有边都是}d\mbox{的倍数的生成树的边权和}]\),看上去需要做\(\max\{w_i\}\)次求行列式,但考虑到参与构成此部分的图中边的总数不超过\(m\times \sigma_0(w_i)\),而一张少于\(n-1\)条边的图中一定不包含生成树,故求行列式的次数其实只有\(O(\frac{m\times \sigma_0(w_i)}{n-1})\)次,总复杂度可以估计为\(O(n^4\sigma_0(w_i))\)


代码等loj上传了数据且有时间了再写。

咕咕咕。

你可能感兴趣的:(联合省选 2020 题解)