UNR7
那些你不要的
注意到操作不改变位置下标的奇偶性,即最终答案必然在初始下标为奇数的数中
同时,每次操作恰可删除其中任意一个,进而答案即这些数的中位数(若偶数个则取较大项)
用nth_element实现即可,时间复杂度为
比特迷宫
从大到小枚举,并调整(二进制下)恰包含个的位置:
钦定恰包含个,取为将中若干位变为,即可翻转对应的恰包含个的位置
换言之,仅需构造一个的集合,使得其可以"覆盖"所有恰包含个的位置
这可以贪心实现,即每次选择能能额外覆盖最多位置中最小的,最终的总数为
另外,这还会翻转自身,这仅需在之前的调整中将其设为即可
时间复杂度为
璀璨宝石
当第次购买发展卡时,在中恰剩一张卡未选,并需在其与间决策
考虑暴力DP,定义表示所剩的卡为且还需要个宝石的答案
-
若中仅存在一项非,此类状态可直接表示
-
否则,即其中任意非两项配对后均严格劣,进而存在一项使得仅包含其与其余项的配对
此时,状态仅取决于该项编号和其余项的数量和
状态数为(其中),并考虑转移:
-
对于第一类状态,枚举新的宝石编号,转移即形如
可以用单调队列优化
但实际上直接暴力就能过了 -
对于第二类状态,配对方式唯一,可以直接转移
时间复杂度为
火星式选拔
对于前大的,其总能加入且不会作为最小的删除,必然在最终答案中
在最后一个前大的加入前,其余个均在答案中,进而加入后答案恰为这个
对于第大的,在此后找到第一个的,即转换为的子问题,倍增即可
时间复杂度为
反重:求熵
钦定,并将限制转换为
当确定后,的范围即
枚举取到的(多个取最小),即要求
此时即为的子问题,且每组方案对答案的贡献为
重复此过程,维护答案多项式,每次即求
预处理出,并将用代替即可,时间复杂度为
同时,注意到间独立,时间复杂度为(其中为多项式项数)
鸽子收费站
为了方便,以下认为同阶,并将所有区间右端点
用set维护每个位置上的极长不可通过区间,则整个过程中共有个区间
同时,不妨将这些区间看作在不同的位置上,问题即转化为:
给定个区间,初始均未被"激活",每次操作支持:
- 改变一个区间的"激活"状态
- 给定,依次对内被激活的区间执行
另外,通过对此进一步离线,即转化为题解中所述的问题
对序列分块,记块大小为,当单点修改时重构,即需对整块实现快速查询
块内本质不同的值仅个,可以预处理出每个值的答案
具体的,顺序枚举被激活的区间,维护当前可能被得到的答案以及对应的初始值(区间)
此时,操作即将内的答案均合并到,可以用bitset实现此过程,单次复杂度为
查询时,将该数二分到对应的序列的(非严格)前驱,即为该数的答案(特别的,若不变仍为自身)
(对所有数)离散化后再次离线,可以在空间复杂度仍为个基础上去掉这个二分的
时间复杂度为
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2020-07-21 [nowcoder5669H]Harder Gcd Problem
2020-07-21 [loj2479]制胡窜
2020-07-21 [nowcoder5667K]Keyboard Free