晚练计划总结
26-1-20
。。。
简单题目。
26-1-21
神秘 Trick,84 pts
26-1-25
缩点,有 DAG 性质就好做了。
26-1-26
没考虑直径以外的点,挂完了。
26-1-27
绿题,写的时候打错了一个字符,挂了 45 分。
26-2-25
P1772,看了一会发现数据范围支持跑
26-2-26
P2254,简单题,
26-3-2
P9921,(1,1)~(i,j) 的前缀 max 答案和 (i,j)~(n,n) 的后缀 max 答案再枚举每个点再二分一下即可。
我草 cdo 会
哦哦那我会双 log 做
26-3-3
保龄啦~~~~~~
建图???何意味???我这几天图论专题白做了???
连
解释奇数解的具体做法:
不难发现图中如果没有环,那么这个图就是个森林。
由于没有环,不可能有偶数解,所以所有点的度数都得是奇数。
注意到想要改变度数只能改变这个节点和其父亲的连边情况,所以从叶子节点向上进行改变即可。
若一个点的当前度数为偶数,则连接其父边,使其度数变为奇数,这样对于每一棵树,除了根节点都一定可以合法,此时根据根节点的度数的奇偶性就可以判断是否有解(根节点无父边,无法在不影响子节点的情况下改变度数奇偶性)。
26-3-4
写爆搜,枚举每个
26-3-5
。。。
无语了。
注意点:
- 先考虑顺子,再考虑带牌,这样搜得快。
- 加一个形如
nmf(i, 2, 15) if (cnt[i]) now++; ans = min(ans, now);这样的东西,方便剪枝。 - (加强版)加一个优化,对于一个搜索过的状态,若当前解不优于原解,则剪枝,可以用类哈希加 map 实现。
26-3-8
建一个分层图,第一层是横向边,第二层是纵向边,两层之间建边权为 1 的双向边,还有连接到起点和终点的边。
这是一个点数边数都是
26-3-9
设
最后时间复杂度是
26-3-10
26-3-11
DP,设
朴素和优化都是蛮好想的。
但是,对于同一头牛的多个询问,
26-3-12
反图,拓扑求最长路,然后依次考虑最长路为
因为从小依次考虑,所以上一个长度的最长路的排名不仅可以用来确定选择哪些路径转移给当前长度的最长路,还可以据此对当前长度的最长路排序。
就是将所连接的边的边权为第一关键字,连接的上一长度的最长路的排名为第二关键字排序。
后半部分逐长度处理用 bfs 实现,因为 bfs 一层一层遍历的结构恰符合我们的需要。
26-3-15
爆零。
发现图是个森林后可以 DP 做。
设
有转移如下:
初始设
注意不要设
26-3-16
场上 80 pts。
二分答案+DP。
设
为什么这个状态是对的,有一个贪心证明:如果当前在
注意转移时的贪心策略是从小到大找不是从大到小。
例子:
26-3-17
场上 40 pts,草,没写出来正解。
考虑朴素
26-3-18
场上思路从一开始就是走进了死路(一遍 DP 且根固定),本质上一定需要换根以通过简单的单一结构(即下文所提的“父节点-节点-子节点”形式连边)进行 DP 来找到复杂的最优答案。
第一遍 DP 是容易的,第二遍换根也不难,只提一下第一遍 DP 的状态定义:
26-3-19
一道贪心,破局点是从答案序列的第一个位置考虑,结合原树节点编号互不相同的性质,分类讨论正确结构。
26-3-22
本质就是 bfs,但是要用“整层处理”的思想。
时间复杂度看起来很不对,但是事实上是
大概理解:一个点不会成为下一层,当且仅当队首与之有连边,所有点最多会被留下
26-3-23
神秘贪心,感性理解不难但是就很神秘。
然后场上还没写出来。
我菜完了。 /ll
26-3-24
二分答案,转化为 01 序列,考虑如何判定,设
26-3-25
考虑
26-3-26
从大到小正着做
注意,虽然转移只用最优解,但是并查集合并要将所有
26-3-29
P9322 超级棋子,难点在于发现马的规律。
公式为:
26-3-30
P4364 IIIDX,题解 To do。
26-4-1
P15567,直接
注意本题要开 int128。
26-4-2
第一题 P13308,可以用哈希表记录下所有的修改,还可以离线处理,只记录与询问有关的位置的修改。
第二题 P12247,二维偏序下的 DP,将条件排序后用树状数组维护最优值,注意 DP 时要取前缀 max 转移。
26-4-7
P15939。
考虑贡献直接算的条件,然后发现需要区间覆盖维护来求,ODT 维护后,算出下一个断点(未跨过的辣团子),再算一下单段贡献,就可以倍增,然后做完了。
26-4-8
P14645。
去除英雄不能重叠的条件,显然最远点到达后就不会对其他点产生影响了,而到最远点的英雄显然也最早出来。
bfs 求所有可达点的距离,将所有堡垒的距离从大到小排序后发现答案就是
怎么想到这个结论呢?
考虑发配(?)
然后这个玩意的修改可以拍到距离域上通过线段树维护,线段树 info 是区间堡垒数和答案的 max,tag 维护对答案 max 的区间减,三种合并显然很简单,还要支持单点修改。
做完了。
但是场上写线段树 bug 有点多,没写出来(大悲),只交上了暴力。
26-4-10
晚练变早练说是。
第一道题,发现边双缩点后,边双内的点两两显然可以异色,再想想发现有且仅有割边连接的点需要同色,并查集维护一下同色性,然后如果并查集上至少有两种不同色连通块即有解,随便选一个连通块染成与其它点不同颜色即可。还需要特判不连通的情况,此时显然无解。
第二道题,简单 DP,设
26-4-13
二分答案 + 树形 DP 实现贪心。
显然有关于答案的单调性,考虑如何实现 check。
设
设
转移如下:
若
若
若
DFS 一遍贪心求出最优点燃次数
说实话这个贪心挺模糊的,但也不知道怎么严格证明。
26-4-14
绿绿得紫。
第一题 P11187,考虑 DP,
第二题 P12000,二分答案加贪心,贪心策略就是在满足游玩需求的情况下,最多只买可以撑到下一个
26-4-20
P15301,汗国军队。
首先考虑插入,发现对于 LIS 的更新可以用对 01 差分数组的更新刻画,而且还很容易做,直接放进 DP 维度里,还有一个对于汗王护卫的要求,再加一维表示最后一个加入的汗王护卫的位置即可维护。
总状态数
26-4-21
绿绿蓝得紫。
第一题 P12675,分讨,共四种方案。
- 将
变合法,答案 。 - 将
变合法,答案 。 - 将
变合法,,答案 。 - 将
变合法,但要求 ,答案 。
第二题 P3419,贪心,贪心策略猎奇,就是若当前需要从地板中移除玩具车,则移除产生贡献最晚的那一个(下一个编号与之相同的车最远的)。
26-4-22
P15352,就是要支持
26-4-23
发现每个出现了的数可能范围最大长度为
26-4-26
拆点处理边权,然后就可以用矩阵优化 DP,转移矩阵的幂二进制拆分,然后注意到并不需要用矩阵存储转移结果,只需要直接转移即可。
对于美食节,只需要分段转移,在美食节给当前的 DP 数组加一个值即可。
26-4-27
第一题 P10837,发现只需要关注某朵凋零玫瑰覆盖区间内被覆盖次数为
第二题 P11969,超绝巴巴博弈,不想写了。
26-4-28
P14598。
考虑线段树处理,没有修改,所以关键在于 info 和合并。
info 包含
分别表示以
合并贴代码:
1 | struct info |
挺显然的,不知道做的时候在想什么。
文件名还打错了,直接起飞。
26-4-29
P9402。
注意到
naive 的就是直接枚举上车点转移到下车点,这个转移是
时间复杂度瓶颈是 DP,时间复杂度
- 标题: 晚练计划总结
- 作者: DimStar
- 创建于 : 2026-03-02 21:08:57
- 更新于 : 2026-04-30 11:05:20
- 链接: https://dimstar-zhang.github.io/2026/03/02/晚练计划总结/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。