专栏文章

题解:CF1685C Bring Balance

CF1685C题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minqzq9k
此快照首次捕获于
2025/12/02 06:55
3 个月前
此快照最后确认于
2025/12/02 06:55
3 个月前
查看原文

CF1685C Bring Balance

结论题,下文默认 nn 为原题面中的 2n2n
结论 1:答案一定小于等于 22
证明:
( 视作 11) 视作 1-1,令 aia_i 为字符串的前缀和。设 xxaa 中最大元素所在位置,那么操作 [1,x]\left[1,x\right][x+1,n]\left[x+1,n\right] 一定满足要求。这一点可以将前缀和取出来计算。
那么只用考虑答案为 0,1,20,1,2 的情况,为 00 直接判断初始是不是合法括号序列即可,考虑为 11 的情况如何判断。
假设最左边的 ai<0a_i<0 的位置为 plpl,最右边为 prpr,那么答案区间 [l,r]\left[l,r\right] 一定满足 lpl,prrl\le pl,pr\le r
结论 2:存在合法区间 [L,R]\left[L,R\right]l,rl,r 满足 al1a_{l-1}[0,pl1]\left[0,pl-1\right] 中最大值,ara_{r}[pr,n]\left[pr,n\right] 最大值的区间 [l,r]\left[l,r\right] 一定合法。
证明:
考虑翻转后括号序列合法性的 check。此时的 ar(il)=al1+arai0a'_{r - (i-l)}=a_{l-1}+a_r-a_i\geq 0,也就是说 al1+araia_{l-1}+a_r\geq a_i。显然 al,ar0a_l,a_r\geq 0(因为可以取 l=1l=1r=nr=n),所以当 al1a_{l-1}ara_r 最大的时候一定最优。
因此只需要找到这样的 l,rl,r 判断是否合法即可,不合法就选最大值构造,时间复杂度 O(n)\operatorname{O}(n)

评论

0 条评论,欢迎与作者交流。

正在加载评论...