CF425A Sereja and Swaps

题意

给定 nn 个数的序列 aa,交换序列的任意两个数 kk 次,求交换后最大子段和。

解法

考虑贪心。

因为 n200,k10n \leq 200, k \leq 10,所以我们可以考虑平方级别的复杂度。

假设最终必须选区间 l,r(lr)l, r(l \leq r),那么显然这 kk 次操作,每次应该选择区间内最小值,和区间外最大值交换,也就是交换 mini=lrai\min_{i=l}^r a_imax{maxi=1l1ai,maxi=r+1nai}\max\{\max_{i=1}^{l-1} a_i,\max_{i=r+1}^n a_i\} 交换,但是如果区间内最小值 \geq 区间外最大值,那么停止交换。

对于每一个区间 l,rl, r 都进行 kk 次查询最值,复杂度 O(n3k)O(n^3 k),可以通过。

posted @   HappyBobb  阅读(5)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示