CF1802 题解
CF1802 题解
A likes
最大值一定是一个前缀全部关注, 一个后缀全部取关.
最小值一定是一个前缀关注完立刻取关, 后面全部是关注.
模拟即可.
B Settlement of Guinea Pigs
那些未确定性别的只能每个单独占一个笼子, 其他的需要我们去分配.
如果有
C The Very Beautiful Blanket
由题意得,
如何决策呢? 发现重复的概率并不高, 直接在允许的值域内随机即可.
D Buying gifts
有
把它画到二维平面上, 就意味着我们要用两个半平面覆盖所有特殊点, 如图所示.
我们枚举
这样的话, 我们用 set
维护左边的所有点的
注意有
E Music Festival
我们考虑动态规划, 每一段数列能成为最大值的数的个数是有限的, 比如
所有可能的这样的序列个数不会很多, 这个数
发现我们只关心每一个可能段的最小值
这是个类似于二维偏序的 dp , 用 BIT 维护即可.
F The way home
我们发现, 最优策略形如在一个地方
其中满足
这是因为如果后面的
这样, 我们设
一个最优策略用一个二元组表示
但是无法比较二元组之间的优劣怎么办?
我们发现贪心的先保证
为什么呢? 因为所有方案
这个转移只会从
G Gasoline prices
快跑啊孩子, 这题卡常
我们用并查集去维护相等关系, 然后每一个不一定相等的元素决策, 乘法原理即可.
我们发现有效的相等关系连边只会有
我们发现, 对于一次链操作, 我们把每个点的点权看成他的并查集代表元, 如果一个前缀链都是无效的, 那么前缀链的权值连起来形成的串是一样的.
那么我们只要每次都二分+哈希去做就可以了, 维护哈希用树剖就可以了.
最后的问题是一次 merge 好多个点的点权都会变, 怎么办呢? 启发式合并! 两个 log 就做完了.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统