省选模拟赛 1
期望 100+100+15,实际 100+90+0,被卡常+写错文件名。
A
可以发现一个简单的 dp,也就是设
现在是
我们发现,这支持二分答案,那么考虑二分答案,这个 dp 变成可行性,便可以使用 bitset
进行优化,得到
我们并不满足于此,想办法取掉二分答案,仍然考虑这个可行性 dp,从小到大加入可用
我们现在只需要快速查找到被更新的这些区间就行了,设查找的复杂度是单次
令人高兴的是,我们可以使用 bitset 去处理这个操作和拿出相应的
事实上可以使用 STL _Find_First_
函数,唐了。
B
首先可以发现明显的比较决策,当确定了选出哪些
那么我们先把所有元素按照
现在可以
发现函数下凸,证明显然。
这启发我们想到 Slope Trick,分析其斜率数组(原数组差分数组)可得:
设
考虑这两个函数所表示的凸壳,可以发现除开原点,这两个凸壳有且只有一个交点,这就说明了前一半取第一种决策,后一半取第二种决策。
事实上可以考虑打表,设
,可以发现其为一串 接上一串 ,再写一个对拍拍个七八千组。
因此我们可以二分这个转折点,并维护转移。
注意到设转折点是
可以使用平衡树维护区间加单点插入做到
这是考场思路,并且平衡树外层二分容易优化到平衡树上二分。
事实上转折点的实际意义是两个递增斜率序列的相对关系第一次变化的位置,容易平衡树上二分。
C
强如怪物,单独开篇。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!