0%

近期训练题目一句话总结

近期训练题目一句话总结

然后 “-”+“空格”可以得到无序列表

  • HDU 2026 春季联赛 10 D - 歪歪爱追剧:筛掉不含明星时刻的区间后做带权区间选择;坑点是没有前驱时也要允许当前区间单独成为答案。

  • CF 1100 E - Deconstruction Tree :固定终点看前驱区间,非根转移是 need[y] < x < y;根转移只看第二大的根分支最大值。 题解

  • CF Round 1101 Div2 C2 - Seating Arrangement:两个洞见串起来看:一是桌子从空到非空是单向状态变化,所以拆成开桌者 / 跟随者;二是 A 不能待定式分配,因为其具有中间过程价值,因为它只有先作为跟随者进入结构,才会拥有“以后改成开桌者时吐回旧槽位”的中间过程价值

  • 金马 5 校 - 奇点蜂测序区间异或约束先转成前缀点关系 slsr+1=xs_l \oplus s_{r+1}=x,再用带权并查集维护连通块内相对异或;查询时同块输出差值,不同块输出 -1。

  • CF Edu 170 D - Attribute Checks:INT 当 dp 下标、STR 靠「已得点数 − INT」反推,把两维属性压成一维;每条检定本质是给一段连续区间 +1,用差分做到 O(1),只有遇到加点才把差分 partial_sum 摊开、做一次背包式分裂转移再压回;m=5000 这个小界就是在暗示 O(n+m²)。

  • CF Edu 170 E - Card Game:单花色按点数从大到小变成括号前缀余额,用 Catalan / ballot 数压出 dp1;再让花色 1 的多余资源做一维 DP,刚好补完所有非王牌缺口。

  • ABC-470-D - Inverse and Swap排列看成位置和值之间的对应关系

image

  • ABC-470-C - Inc, Dec, Xor 增减异或(注意题目条件限制:初始时 AA 的所有元素均为 00,以及操作的摊还分析) 其实是一个比较简单的摊还分析,那么比较需要注意的就是题目中的初始时A的所有元素均为0,然后操作 1 只能给一个元素加1,然后操作 2 是对所有值减1,而且是减到0以后就不减了,注意到,其实这样子的话,数组中的正数元素是非常少的,直接暴力维护即可啊。

  • ABC-468-F - Chmax 我们不难注意到,观察到每步操作我们都必须要做啊,然后就可以发现,有些数字,我们是必须会被迫选到**,这个前缀最大值数组中出现的值,我们必须要选**啊,而且不仅仅是必须要选,我们的有一个 X / Y 的上升序列一定就是长这个样!否则就不是很优秀啊。

  • Voronezh State University - Sitronics contest II——J. Just a map editor(连通块拼图)
    先用 bfs 黑白染色,每一行贡献这个 m 个联通块啊。
    然后可以用这个操作补上零头啊。
    image

  • 2026牛客暑期多校 8——B-Deep Finesse(深算) 一个东西,整体比。。。小,可以化为前缀+1,-1 模型啊,进而转化为这个走格子模型啊,使用 dp 进行计数求解啊。

2026牛客暑期多校 8——B-Deep Finesse(深算)

2026 杭电暑期多校 8——1007 用传送门来让网格连通吧

https://acm.hdu.edu.cn/contest/problem?cid=1236&pid=1007

注意到这个 k 很小,虽然传送门是单向的这个(不方便直接使用并查集),但是我们直接在这个上面搞就好了,直接在并查集祖宗有向图上跑 bfs 即可啊。

image

2026 杭电暑期多校 8-1009-价值总是越大越好

首选排除我们管不了的,我们管的了的东西,两两配对绝对值之差要最大,显然是划分为两个集合,大的集合中的数小的集合中的数字。这种较为简单,而且限制一看就比较宽松的计数题目,一般都和这个阶乘,集合划分后乱排有关系。然后两两配对计数的话,一开始可以不用关心这个两两是谁在前,谁在后,先关注哪两个数被分配到了同一集合,或者说是这个分配的顺序

2026 杭电暑期多校 8-1002-会自动求和的序列

那么,如果我们发现一个操作每一轮都会做,或者操作的时间非常有规律,即便这个操作有一些不规律的增量啊,那么往往来说,其肯定是有办法通过基底值加上这个一个我们维护的增量值得到答案的。

2026 杭电暑期多校 8-1008-分数越小还是越大越好

这种让你构造这个最大最小的,可以先手玩一下样例,自己画一画,看看最大最小的构造策略是什么。

Mex 的题目,我们肯定要利用好 Mex 的性质。Mex 要求在 <mex<mex 的全部一一出现啊,一个都不能落下啊。

可以利用 mex 要求的这个连续属性定义 dp 状态。设 DP(u,v)DP(u, v) 表示:将标签 0,1,,dist(u,v)0, 1, \dots, \operatorname{dist}(u, v) 分配给路径 uvu \dots v 上的所有节点,所能获得的最大累计贡献分数。(比如这道题目,他就利用了这个性质)

你也可以反过来这么想,如果说你的DP状态定义要比较的暴力的话,那么其实你将会需要考虑每一个点它到底要放什么值,这个其实我们完全不能够去考虑的,因为你每个点都要考虑的话,你这个DP就是一个N维的DP,完全没有任何效率可言,反正基本上就和暴力差不多。