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\) 同样是常用技巧。

posted @ 2025-07-24 21:01  2019yyy  阅读(12)  评论(0)    收藏  举报