『网赛总结』Day11
暑假以来?包括补题和 VP。
CF
1. CF1982
C
dp + 数据结构优化 / 贪心。
D
转化成解方程。裴蜀定理。
E
分治。每次简化 1/2。
F
维护序列
2. CF1989
B
LCS 变形。
C
二分后简单贪心。
D
递归实现被 hack 了。
先一次操作使得
不妨按照限制从小到大 dp,每次转移不能暴力,由于前面所有状态可以转移,并且都是 +1,故 dp 数组单调,维护
E
有个 dp 用第
本质上我们只关心相同数构成的块的状态。至少出现
前缀和优化 dp。注意特殊情况:不在开头或者结尾的长为
3. CF1983
B
-
对每个
的矩阵操作,易证成立。 -
结论:每行每列关于
同余。
C
可以暴力确定前面和后面的分界点,判断中间是否成立即可。
D
不妨
考虑直接排序,一个数组排完过后一直 1 2
跳即可。发现只要奇偶性不变就可以。
又知这样子排序的交换次数是逆序对个数,bit 计算。
E
每个普通球的是贡献相似的。(所以实际上可以权值累加)
组合意义:普通球放一排,两人交替选择,中间可以插入特殊球,这些球的主人和后面的普通球一样。首尾可插,并且可重复插。
注意 Alice 选的都是奇数位的球,可以算出普通球和特殊球的位置占比,得出期望。
F
不难想到二分答案然后对满足条件的计数。(trie 上可以实现计算小于等于一个数的信息)
扫描
不要忘记保留历史版本的
4. CF1988
C
长度就是
D
对所有人被染色时间 dp 即可。证明这个染色时间是 log 级别。
复杂度就是一个 mex 计算,
5. CF1994
C
二分确定 dp 转移点,像一道 arcb。
D
鸽巢定理证明一定有解。
具体的,反着操作。你的同余系必定有
实现也简单,能加就加,平方对数。
E
按位贪心。
首先如果一个位超过 2 个,那么另一个一定可以把后面全部变成 1,直接跳出。
上面这个性质很强,说明跳出之前,前面的都只有 1 次。
每次都贪心留下这一位的答案即可,发现这是下界,考虑上界,由于唯一,如果要前面一位来调整的话就会丢弃那一位的 1,不优。
F
欧拉回路。
考虑预处理,让部分边变得重要,同时保证一定有解(度数是偶数,这可以通过 dfs 实现)。
最后就可以跑欧拉回路了。
6. CF1990
C
2 次过后数组就单增了,很好观察出来。
然后整个数组的变化就是向右平移,所以每个连续段的贡献是一个分段函数。
D
贪心。舍弃掉 >4 的行。算相邻两个段之间可不可以减少答案。
7. CF1995
B2
先判掉
否则,考虑先选择
C
贪心,保存指数进行 log 运算。
D
转化:每 k 个位置必须有一个 1。
设
要
将 P 取反,可以得到等价条件:所有
理解就是取反之后,原来 P 是 1 的直接变成 0 了,只要 S 有 1 就行了。
可以做 bool 的高维后缀和。
8. CF1993 (VP)
C
循环节显然是
第一个限制直接做数组差分即可。第二个好算。
D
二分 + dp
平方 dp 是显然的,需要根据题目性质优化到线性。
性质:所有转移位置在
考虑每次转移是从
如果
其它情况就可以从
F
有个 trick 是一次调头相当于接着走,将长宽扩大一倍,每次行走赋予模意义这样就成功地去除了调头的限制。
设走
考虑
可以转化成两个
excrt 合并一次即可,得出最小非负整数解,然后根据解的范围算出答案。
9. CF1998
B
我们的构造要向“每个区间只有 1 个数不一样考虑”。
C
比较难。但是出的好。
注意到如果我们不删除中位数这个位置的数,那么那个数是一定的。
所以我们可以把
其它策略?我们可不可以使得中位数变大一点?
此时我们就询问
操作也是很好想的,如果对
D
如果你提前求出从 1 到达每个点的最少时间,你发现不好做,因为你要限制的区间是有约束的。
换句话说,假设 A 从
解决方法也很好想,顺序扫描,每次统计从
E
笛卡尔树。直接区间上做也可以。
建出树来,发现如果
但是有一个前提,就是到祖先的路径上的点都是可以的。
所以两次 dfs 即可。
严谨的证明你考虑每次操作是 upd 和删除,那此时
其实我交上去发现过了也觉得很不可思议。
E2 还不会。
加强版:[JOISC2022] 鱼 2。
在笛卡尔树的角度想是没有前途的,看能不能转化成区间的性质。
若
,则 内的所有数都不满足条件。
估计不会补了。
10. CF2004
我快出生了。
D
如果
否则,对于一个不完全同于
所以你直接枚举在
E
Nim + sg
对每个
打表找结论,但我不会证。
结论:
-
若
是质数,则 是 的质数编号。 -
否则,
是 的最小质因子的 值。
线性筛即可。要特判 1 和 2。
F
需要观察到分裂操作一定不优,这里有各种情况,但是你都是可以直接合并做的。
考虑区间 dp,
这告诉我们同一个和下,区间都是包含关系,显然可以转移。
那么我们就可以按照
注意最后
11. CF2001
C
对于每个点暴力询问
D
看来这种古怪的定义多半都只能是暴力+优化。
暴力选择最小字典序,奇数选最大,偶数最小。
一个数能选择必须它的位置后面出现了所有还没有选的数,这个直接记录
考虑
注意还有每个数只选一次的限制,所以每次把这个数的位置都在 ds 上给删除。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!