AGC062

Right Side Character

n=|s|,观察到以下两个性质:

  • sn=A,则f(s)n1=A,进而答案为A

  • sn=Bi[2,n],si1si=BA,则i[2,n),f(s)i1f(s)i=BA

    由于最终必然不存在,中间即存在某步使得f(s)n1=A

综上,答案为B的必要条件sn=Bi[2,n],si1siBA,且显然充分

简单判定即可,时间复杂度为O(n)


Split and Insert

考虑将过程逆序,即对于给定的{Pn},每次将k个数放到末尾,最终使得Pi=i

注意到两数的位置关系取决于最后一次恰选择其中一项的操作(若不存在即与初始相同)

QPi=i,Si为表示i操作情况的K位二进制数,则即要求i[1,n),(Si,Qi)<(Si+1,Qi+1)

定义fl,r,i表示区间[l,r]仅用i​次操作的答案,则

{fl,r,0=[Ql<Ql+1<...<Qr]fl,r,i=min{fl,r,i1,minj[l,r)fl,j,i1+fj+1,r,i1+(rj)cKi+1}

暴力实现即可,时间复杂度为O(n3K)


Mex of Subset Sum

不妨假设a1a2...an,并记Ai=j=1iaj

维护[0,Ai]中不能被表示的数集合T,转移即T={x(xaiTx<ai)(xTx>Ai1)}

将左半部分的条件拆开,即T={xxaiT...}{xx<ai...}

(其中...表示右半部分的条件)

后者若大小k即可直接得到答案,否则即|T|<|T|+k,进而|T|nk

用set暴力实现即可,时间复杂度为O(n2klognk)


Walk Around Neighborhood

参考这里


Overlap Binary Tree

参考这里


Preserve Distinct

咕咕咕

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