【考试】【2022.2.9】考试总结

一个春节后,整个人都变逊了呢 ...

案发现场

开题顺序

\(D \rightarrow B \rightarrow A \rightarrow C \rightarrow F \rightarrow E\)

简要案情

\(A\)

时间: \(9:20 \rightarrow 10:00\)

我还以为有多难 ...

线段树练手题,还没有下传标记和懒标记 ...

很快啊,啪的一下就写完了。

\(B\)

时间: \(8:30 \rightarrow 9:20\)

离大谱的题目。

我的转移方程不知道比题解和其他同学的复杂了多少倍,还让我一直调试 ...

但是最后竟然还对了?

被卡常但没完全被卡常 ...

\(C\)

时间: \(10:00 \rightarrow 10:40\)

骗分开始。

直接暴力 \(DP\) 骗分。

你以为我不知道正解是树状数组 + 三分法求函数极值吗?我只是不会写而已 ...

\(D\)

时间: \(8:00 \rightarrow 8:30\)

我一眼就看出你不是人这是洛谷上三倍经验的原题,果断开写。

原本只要 20 分钟就能写完,但是单调栈写挂了后又调试了 10 分钟 QAQ ...

\(E\)

时间: \(12:10 \rightarrow 12:40\)

最后写的题,根据当时情况果断写暴力。 结果只有 20 分 QAQ ...

\(F\)

时间: \(10:40 \rightarrow 12:10\)

第一次暴力 \(DFS\) 写这么久,还一分都没骗到 ...

下次能不能多给一点数据点?

直接枚举可能可以一起合并的两个外星人,并把它们合并成一个外星人,累计贡献即可。

真相大白

\(A\)

线段树练手题。

不需要建树,操作期间直接设为 \([1,m]\)

对于 \(A\) 操作,直接线段树单点修改;对于 \(Q\) 操作,直接线段树求区间最大值。

所以讲来讲去不还是模板题吗?

\(B\)

\(DZY\) 的奇妙转移方程

看到所有人的转移方程都很简单,那么我就提供一个离大谱の转移方程吧!

树形 \(DP\) ,考虑直接计算所需数据,分两次 \(DFS\) 完成。

\(DFS1\)

维护三个值:

  1. \(dep_x\) \(x\) 节点深度。

  2. \(sum_x\) \(\sum dep_y (y \in subtree_x)\)

  3. \(son_x\) \(subtree_x\) 的大小。

\(DFS2\)

如果以 \(root\) 节点为根进行 \(DFS1\) ,那么节点 \(root\) 的贡献显然为 \(sum_{root}\)

其他节点的贡献则需要计算得出。

非根节点 \(x\) 的贡献分为两部分:

  1. 原本在 \(subtree_x\) 内。

  2. 原本不在 \(subtree_x\) 内。

第一部分可以直接通过 \(sum_x - son_x \times (dep_x - 1)\) 得出,记为 \(ressum_x\),而第二部分又可以一分为二:

  1. 原本在 \([root,father_x]\) 上。

  2. 原本不在 \([root,father_x]\) 上。

第二部分前半段可以用前缀和的前缀和维护,记为 \(totsum_x\) ,则有:

\[totsum_y = sumsum_x+son_{root}-son_y \ (father_y = x) \]

后半段记为 \(totsum\) ,则有:

\[sumsum_y = sumsum_x+(sum_x-sum_y)-(son_x-son_y) \times (dep_x-1) \ (father_y = x) \]

那么答案 \(ans_x\) 记为:

\(ans_x = \begin{cases}sum_x&x = root\\ressum_x+totsum_x+sumsum_x&x\ne root\end{cases}\)

于是就做完了。

\(C\)

QAQ

\(D\)

不能说非常相似,只能说一模一样。

首先计算出在每一个位置上最多能往上延伸的 1 的个数 \(a_{i,j}\)

然后将每一个点向左右拓展,分别找到其左侧和右侧第一个比 \(a_{i,j}\) 小的数的位置(也就是保证 \(a_{i,j}\) 为区间最小值),分别记为 \(l_{i,j}\) , \(r_{i,j}\)

那么这一个点对答案的贡献即为 \((r_{i,j}-l_{i,j}-1)\times a_{i,j}\)

\(E\)

QAQ

\(F\)

\(本来想到正解了 ...\)

区间 \(DP\)

对于区间 \([l,r]\) ,取 \(x\) 号外星人作为分界,使 \(l \leqslant x_l , x_r \leqslant r , x_p \leqslant y_p \ (l \leqslant y_l , y_r \leqslant r , x \ne y)\)

再取 \(k \in [x_l,x_r]\) 作为分界点,则有 \(f_{l,r} = \min(f_{l,k-1}+f_{k+1,r}+x_p)\)

posted @ 2022-02-09 14:57  Daniel2020  阅读(22)  评论(0)    收藏  举报