Codeforces Div.2 979 E-G
E
这个最大分值显然是:设
考虑到我们只关心各个元素的出现次数,那么设原本序列是
则需要乘上一个组合数
设
首先这个状态需要满足
然后转移只需要枚举当前选多少个例如选
可以前缀和优化转移
F
发现出现 xyxy
这种东西就没了,而且答案具有单调性
所以我们可以考虑双指针求
这是简单的,我们找到
也就是我们对于每个位置维护
- 若
,则判断是否 ,如果有则增加 ,重复,否则跳出
利用线段树维护即可。
G
考虑到一个策略:
-
取出
若 则已经合法,跳出 -
删去这两个区间,代价加上
重复这里保证了这两个区间修改后相交的条件,并且最终的合法区间一定在这个区间里面,用这个操作是充分且必要的
考虑两区间
设有
考虑加速计算。
将
那么我们只需要专心计算:
由此我们可以
也就是我们可以由
而又有我们所求是
这就好了。
同理考虑右端点的贡献即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!