CF2029
A
题意
给定整数
- 从
中选取一个数字 ,满足 中至少有 个 的倍数; - 从
中删除 。
求可以进行的最大操作次数。
分析
于是合法的区间即为
B
题意
给一个长度为
希望对
- 选择一个索引
满足 。若无法选择这样的索引,则操作失败; - 将
替换为 。
判断是否可能成功进行
分析
注意到,一个状态存在可操作的位置
那可以维护当前
C
题意
Kevin 在打 CF 比赛,他的 rating 初始为
分析
我们可以通过模拟得到只考虑前
然后发现后缀不是很好递推处理,于是我们可以二分一个答案即最终位置的 rating,然后往前递推。由于是倒着推,遇到更小的表现分 rating 加一,遇到更大的表现分 rating 减一。相等的情况我们可以考虑一个贪心:我们希望前缀某个位置出现与当前 rating 相等直接屏蔽中间的区间,而由于 rating 更低的位置一定出现得更早,那我们一定会选择将 rating 减一。
rating 接近
D
题意
给一个
- 选三个两两不同的顶点
,考虑边 ,若该边存在则删除,若该边不存在则加入;
定义好图为满足下列之一的图:
- 没有边的图;
- 树。
最多可以进行
分析
注意到操作次数的上界很有特点,这可能提示我们操作分为两步。
考虑先把图变为较为稀疏的图。我们对每个度数不小于
第一步后,原图转化为两类连通块:孤立点和两个点相连。如果不存在边那就做完了。
如果还有边我们就尝试将原图连成一棵树。选取当前已经连成一棵树的一个连通块为基础,将其他连通块合并到其中。若新的连通块是一个孤立点,选取其中的一个叶子和与它相连的一个点与之操作;若新的连通块是相连的两个点,选取一个叶子与之操作。不难验证操作的正确性。
由于需要动态维护边,使用 set
维护与一个节点相邻的点。
E
题意
定义对
- 选择
的一个因数 ( ), 。
称
给一个数组
分析
手玩一下发现几个性质:
- 任何质数都无法从其他数操作得来;
是任何非质数的生成器。
对于性质二有一个简单的说明:偶数只需每次
于是大体思路如下:
- 有两个或以上质数直接无解;
- 一个质数的答案要么是这个质数,要么无解;
- 没有质数的答案是
。
那我们只要快速判定一个数
对于一个偶数
对于一个奇数
处理质数和一个数的最小质因子可以同时用线性筛预处理。
F
题意
给一个环,环上的边黑白染色,判断环上任意两个顶点之间的(非简单)路径是否可以是回文。
分析
如果你没有手玩过样例,不要说你想了一个题。
手玩样例得到结论,一个环合法当且仅当满足下列之一:
- 同色段的长度不少于
; - 只有一个同色段的长度等于二,其余均为
。
手玩的过程不知道咋写,就不投题解了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】