2025/07/24 东师
模拟赛
exp:100+100+30+30
90+100+30+30->90+40+30+30
改题:100+100+100+50
T1 flower
考虑到这个不寻常的数据范围(指 \(nm\le 2\times 10^5\)),我们可以考虑枚举一维两个行,然后对这两行再扫一遍。
具体的,维护一个后缀 \(max\) ,给他差分掉就对了。
如果 \(n<m\) 给这个矩阵整体转一下就回到原来的问题了,挂了 \(10\) 分原因在初值给错了。
T2 split
一个显然的 \(dp\),可以直接设一维状态,列出转移方程后发现后缀 \(max\) 有单调性, \(f\) 也有单调性,直接上线段树做就可以。
赛后被 \(hack\) 了,其实即使没看出单调性,也可以大力上分块通过该题。
T3 board
考虑我们已经有了一些全局上最优的操作序列,如何把它们合并成一个全局上最优的操作序列呢?
首先考虑一个简单的贪心,通过调整法不难证明我们应当先取 \(\frac{cnt_0}{cnt_1}\) 大的操作序列。
之后我们把每一个操作序列用并查集维护,每次取出最大的则用优先队列维护。
T4 sport
50分就是超速检测的套路。100分并没有听懂也没有读懂 \(slide\)
主席树
标记永久化
如果添加标记后每次都pushdown,对于主席树来说,每次pushdown都要新建一条链上的节点,如果pushdown我们的空间复杂度是不够的。
所以我们要标记永久化,在查询的时候我们记录一下从根节点开始的标记是多少,每次统计答案时加上标记的贡献即可,回退版本时可以直接修改 \(cnt\) 为 \(t+1\) 版本的 \(cnt\)。
可持久化并查集
合并两个元素时,修改其中一个代表元指向的父结点,用可持久化数组维护。注意不能使用基于均摊的路径压缩,必须按秩合并,所以既要维护 \(fa\),也要维护大小或深度。
可持久化并查集可以维护边权有大小限制(不能两端都有限制)时,所有合法的边形成的连通块形态。按边权从小到大的顺序将每条边加入并查集,每加入一条边就记录一个版本的 \(fa\)。
01 XOR相关
介于优良的可差分性,与二分性,我们可能经常会遇到从高位到低位贪心的事情。可持久化 \(01Trie\) 同样是常用技巧。

浙公网安备 33010602011771号