ZROI 2022NOIP10联测 Round 2 解题报告
100 + 60 + 40 + 30,rk 17.
昨天的 CSP 由于太逆天不补了。
A
这个题最重要的是抓住一个性质:保证 $a_i$ 和所有操作 1 的 $x$ 总共最多不超过 $10$ 种数。
所以我们考虑可以预处理出 $a_i$ 的每个子集是否能凑出来对应的 $x$,这可以使用完全背包在 $\mathcal{O}(2^{10}\times m)$ 的时间内完成。
那么我们考虑操作 1 和 2 怎么维护,我们可以维护一个线段树。每个节点上带有一个 $val$ 表示当前节点维护的区间内子集的情况。然后对于操作 1 我们就直接区间推平,操作 2 查询出来后先存到桶里然后对于每个子集做一遍背包就做完了。
时间复杂度 $\mathcal{O}(n\log n + 2^{10}\times m)$,具体实现看代码。
1 | const int N = 1e6 + 10; |
B
我们考虑如果有 $\max\limits_{1 \leq i \leq n} {L_i} = \max\limits_{n+1 \leq i \leq n+m} {L_i}$,那么矩阵一定存在。这个的证明直接考虑把 $L_{i} = L_{n + j}$ 的位置填最大的值,其他用来填满足其他 $L$ 的值,剩下都填 1 就行了。
那么一个朴素的想法就是钦定一个 $L_{\max}$ 统计答案,答案是显然的。
$$
\sum\limits_{i = 1}^k (i^n - (i-1)^n)\times(i^m - (i - 1)^m)
$$
我们考虑变化一下式子
$$
\begin{aligned}
&\sum\limits_{i = 1}^k (i^n - (i-1)^n)\times(i^m - (i - 1)^m)\
=&\sum\limits_{i = 1}^k i ^{n + m} + (i-1)^{n+m} -i^n(i-1)^m - i^m(i-1)^n
\end{aligned}
$$
这个式子显然是一个 $n+m$ 次多项式。由于我们还求了个和,所以我们只需要把 $n+m+2$ 项给拉格朗日插值一下就好了。
$$
f(x)=\sum\limits_{i=1}^{n+1}y_i\cdot\frac{\prod\limits_{j=1}^{n+1}(x-j)}{(x-i)\cdot(-1)^{n+1-i}\cdot(i-1)!\cdot(n+1-i)!}
$$
时间复杂度 $\mathcal{O}(n\log n )$.
1 | const int N = 1e6 + 10; |
C
算法 1
首先我们进行点边转化,我们把每个边的颜色桶覆盖到对应的深度较深的点上,记每个点的颜色桶为 $col_x$。
我们考虑设计一个 DP,令 $f_{x,i}$ 表示对于当次询问,我们钦定点 $x$ 的颜色为 $i(i \in col_x)$,显然我们可以这样转移:
$$
f_{x,i} = \max{f_{x-1,j} + [i \not = j]}
$$
在树上,我们只需要暴力跳找出每个点,把颜色桶单独拉出来做 DP。时间复杂度是 $\mathcal{O}(qnm)$ 的。
算法 2
考虑我们可以从两个方面优化这个过程:
- 颜色数太多是否没有意义?我们是否可以去掉和 $m$ 相关的复杂度?
- 暴力跳的过程可不可以优化?
要实现第二个方面,首先我们需要对第一个方面进行一些探究。我们对每个点的颜色个数分类考虑:
- $|col_x| > 2$,那么显然我们能找出一个颜色,令 $x$ 和两个相邻的点都是不同颜色的。因此我们对其的讨论就没有意义。
- $|col_x| \leq 2$,这个就是平凡的。
为了方便处理,我们给所有 $|col_x|>2$ 的附上一个新的与其他不同的颜色,将其转化为 $|col_x|=2$ 的情况。
接下来我们考虑原来的 DP 实际上就变成了 $f_{x,0/1}$ 的形式,这个的转移就已经可以通过 $\mathcal{O}(qn)$ 的部分了。考虑继续对其进行优化,我们直接上个倍增,用 $f_{x,k,0/1,0/1}$ 表示点 $x$ 向上跳 $2^k$ 步时,点 $x$ 取第 $0/1$ 个颜色,点 $fa_{x,k}$ 取 $0/1$ 颜色时的最大值。那么这样我们的转移可以通过枚举中间点的颜色将两端拼在一起,也就是这样:
$$
f_{x,k,a,b} = \max{f_{x,k-1,a,c} + f_{fa_{x,k},k-1,c,b}}
$$
那么这个东西其实就是 $\mathcal{O}(2^3 q \log n)$ 的了,本题时限较松,可以通过。
1 | const int N = 1e6 + 10; |
ZROI 2022NOIP10联测 Round 2 解题报告