答案是,什么时候?
夜に咲く温度と灯るまで
当夜晚绽放的温度被点燃之前
呼吸ひとつ生きる生きる
深吸一口气 想着活下去
優しい日々の横で泣かぬように
都是为了不在美好的日子里 在你身旁哭泣啊
愛をひとつまたねまたね
让我们再相爱一次吧
[AGC052D] Equal LIS
设 LIS 长度为 。如果 是偶数,那么对于 。划分到一组,剩下的划分到另一组即可。
为奇数时,我们只需要找到两个长度为 的 IS 即可,构造时同样可以直接划分。具体来说,如果存在比 多的可以成为 LIS 的点,那么直接划分,当 LIS 试图变得比 大时直接扔到另一个序列即可。代码。
[AGC055C] Weird LIS
设 的 LIS 长度为 ,那么应该有 。我们将 。
排列上的数可以划分成四种类型:
让红黑匹配尽可能地先出现,那么 代表以颜色 为结尾,当前 ,直接做即可。代码。
[CF895C] Square Subsets
只会做水题。
其实相当于是在求异或和为 的数的个数,直接线性基,然后答案是线性基内数的个数。代码。
[CF1517F] Reunion
设一种方案 的半径为 ,那么答案是 。实际上我们只需要对于每个 分别计算即可。
设 代表 的子树距离 最近的黑点距离为 的方案数,记满足 的为预备点, 表示 子树内最深预备点与 距离为 时的方案数。
值得注意的是,若子树内已经存在预备点,那么没有必要再考虑距离 最近的黑点与 的距离。不存在时,这东西才需要被记录。
考虑使用树形背包的方式合并:
- 合并 ,可以转移到 ;
- 合并 ,可以转移到 ;
- 合并 ,如果 ,那么 定义的预备点是符合限制的,其会转移到 ,否则会转移到 ;
- 合并 大致同理。
答案是 。
时间复杂度 。代码。
[ARC105F] Lights Out on Connected Graph
二分图可以转化为将点进行黑白染色,但是是否连通不太好搞,先不管。那这样的方案数不难直接枚举子集算出。
考虑如何处理连通。钦定点在某个顺序下的首个连通块 ,那么让 与剩下所有点不连通,就需要减掉这些方案。注意最后答案要除以 ,代码。
[APIO2019] 桥梁
操作分块。块之前的修改直接处理掉,块内部的按照重量限制排序然后枚举所有询问,不需要修改的边按照重量限制依次添加,再枚举需要修改的边按照时间进行修改,然后直接可撤销并查集维护这一阶段的修改,对于一个块内这一步是 的。代码。
中点
好像又大意了。
[APIO2019] 路灯
开一个 set
维护所有值为 的位置,然后相当于是一个二维偏序问题,加上时间之后变成了三维偏序,对于贡献的计算直接记录上一次 所对应的时间,直接 CDQ 分治即可。
[APIO2019] 奇怪装置
不难推导出让 循环的周期 的长度,然后直接求线段并大小即可。代码。
[ZJOI2017] 树状数组
方向反了是什么?变成了求后缀和!也就是说,但是整个东西求的是 。也就是说,要求 的概率。那么可以视作区间修改,单点查询。
使用二维线段树,外层维护 ,内层维护 ,新的概率是很好求的,注意 时只需要注意 的变化情况,直接维护即可。代码。
[CF527E] Data Center Drama
最终要满足的条件是欧拉图的充要条件,然后定向一下边即可。所以将总度数为奇数的点两两相连,然后不满足加一个自环即可。代码。
[CF538H] Summer Dichotomy
先不考虑学生数的限制,那么分别两组学生数为 即可。然后可以调整出一种最优的方案,于是就做完了。代码。
[CF543E] Listening to Music
按照权值从大到小排序,对所有能够覆盖到它的左端点打标记,然后标记永久化一下(空间不足,利用差值来记录标记),就是区间查询最大值。稍微卡卡空间就行,这么出挺无聊的。
落幕
摆捏。