CF1851
氵
把奇数和偶数拿出来分别排序,然后按下标归并,看看得出的结果是不是排好序的。
如果头尾同色,就找有没有
否则从头找
把每个前缀和相邻的相减,得出的结果:
-
有大于
的,拆成两个没出现的数相加; -
有重复的,把其中一个拆了;
-
没有重复的且在
内,肯定在尾巴处补一个。
如果有两个大于
如果发现拆了之后不能构成排列,也不行。
赛时没看见无环
就是一个类似拓扑排序/深搜的题。从无限的药出发,不停更新。每种药可以混合(找前驱)/买。
法一:
考虑每个位单独看。如果
建立 01 Trie。
枚举
等走到了叶节点,我们就选好了
复杂度
法二:
将
排序后,假设答案不是相邻的
若
否则
此时
矛盾。故一定是相邻的
之后的事情就是排一下序就行。
观察发现,
所以,点
注意到到达关系具有传递性,考虑并查集。
将所有询问离线,然后按照
同时我们把所有边
等把所有边都合并完了之后,检查
注意取出边合并两端的操作,不用每次询问都从头开始,所以总共是
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!