【题解】Solution Set - 杂题选讲「刘君实」
【题解】Solution Set - 杂题选讲「刘君实」
7/25 sh 杂题听课情况
「HNOI2012」集合选数
将不能同时取这个性质,反应在图上:互相连边。
于是这道题就等价于数独立集的个数。
一般图的独立集的个数不太好做,但是仔细思考一下,我们实际上建出来的图是网格图(因为
而且边长规模分别是
注意对每一个联通网格图都需要跑一遍,最后答案相乘。
时间复杂度:
「NOI2018」 冒泡排序
狄尔沃斯定理
该定理断言:
- 对于任意有限偏序集,其最大反链中元素的数目必等于最小链划分(覆盖)中链的数目。
- 对于任意有限偏序集,其最长链中元素的数目必等于其最小反链划分中反链的数目。
特别的对于一序列她一定是一个偏序集(只要将满足
的 连边,形成 Hasse 图),此时有:
- 把序列分成不上升子序列的最少个数,等于序列的最长上升子序列长度。
- 把序列分成不降子序列的最少个数,等于序列的最长下降子序列长度。
DAG 和 Hasse 图 是完全等价的,即:任意一个 Hasse 图 是 DAG,任意一个 DAG 是 Hasse 图
首先啊,注意到不合法的的情况当且仅当,存在一个长度为
证明的话,首先要满足不超过这个下界的话,每个元素每次都一定往她的目标方向走,也就是说她一定不会反向。考虑一个长度为
然后根据 Dilworth 定理,即不能将整个序列划分成超过
因为我们最后枚举第一个不同的元素,所以 DP 定义的是向后的方案数。
因为只是不超过
**Warning: ** 时刻注意子序列是可以不用连续的!!!
枚举
,则可以直接接上去: ,那么 必须填当前没有填的最小值,如果之前有这样的转移,那么相当于接到那个上面去,否则相当于开一个新的上升子序列:
则有递推关系:
然后题解就讲的比较清楚了(
最后第三个分讨的地方有问题,因为是当前第
道具整理
真的摆了,这个打表的结论,暂时没证。
@sh 学长的课件讲的挺清楚。(
关于暴力的 dp 递推式:
枚举当前的
在最末尾,块的数量+1。所以 累加 ; 在最后一个元素的前面,块的数量不变。所以 累加 在从右往左数的第一个空隙,块的数量+1。所以 累加 在其她空隙,只要之前的块的数量 ,就一定能找到一个空隙,让多余的块被合并。所以 累加 。
(倒着枚举每次的
接着继续看课件吧(
最后答案要二倍,是因为一开始的
星空列车
灯光展演
首先我们注意到一件事情:染的颜色数量并不是越多越好,最多为
因为是树上的联通块,考虑将一个连通块的贡献分摊到边上。
接下来考虑先随便选一个根
显然,最优的情况下,每个子树内的颜色互不相同且都有匹配。
如果构造题答案存在上界,考虑构造一种方案正好取到这个上界。
Motivation1: 要使这样的点对尽量的多,感性的理解一下,应该要让每一个子树大小平均,因而想到用树的重心作为根节点。
Motivation2: 子树大小小于
可以证明这个方案最优,且取到答案上界。
证明如下:
设
-
如果
:由重心的性质,
,那么子树外的大小之和(包括根) ,所以 子树内的所有的点(强于颜色)都能被匹配到。同时,由于
子树已经包括了所有的颜色,那么对于每一个其她的子树中的颜色就一定能在 子树中找到匹配。 -
如果
:由于我们是按照 dfs 序染的色,意一个点 dfn 序为
,dfn 序为 ,的点如果存在,则其颜色一定与 相同,且不在 子树内(因为 子树还没到 那么大)。同时由重心的性质,
,那么子树外的大小之和(包括根) ,点 至少存在其一。对于其她子树,其大小一定
,那么同理可证得。
最后注意,如果
还有,实际上每棵子树内并不需要像点分治一样,再找重心递归下去。
因为我们一开始考虑的全局树根实际上上就是最坏的情况,子树内的每一条边一定能被跨过她下面节点的子树大小次。
「AGC040E」 Prefix Suffix Addition
加减
「CF1753E」N Machines
挖掘性质,剪枝题。
https://www.luogu.com.cn/article/nf9a741y
「QOJ4912」WereYouLast
最朴素的想法是直接将每次 bool
数组中。
但是显然每次修改次数最多可以到
构造模型如下:
- 每次你的位置加一(初始位置为
); - 如果你新走入的位置之前走过奇数次则停留。否则位置置为
。
这样你第一次从
手动模拟一下前面几次走法:
走完后位置 | 每个位置走过次数的奇偶性 | |
---|---|---|
挺神奇的,这样每次询问只需要修改
(我觉得我还没有完全理解到精髓😢
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话