acgo题库
  • 首页
  • 题库
  • 学习
  • 天梯
  • 备赛

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
  • 竞赛
  • 讨论
  • 团队
  • 商城
登录
注册
题目详情提交记录(0)
  • 官方题解

    T4 午枫的又一个01串 题目大意 给定一个 010101 串,这个串的度为相邻两位元素不相同的个数,可以进行指定操作最多 mmm 次,求出最小度是多少。 解题思路 对于一个 010101 串,如果我们进行的操作区间不在开头也不在结尾,即 [l,r][l,r][l,r] 满足 1<l<r<n1<l<r<n1<l<r<n ,不难 sls_lsl 和 sl−1s_{l-1}sl−1 从不同变为相同,srs_rsr 和 sr***_{r****r+1 从不同变为相同。所以当我们对中间部分操作一次,度就会减 222 。 考虑完中间部分操作的影响,接下来考虑开头和结尾操作会有什么影响: 如果开头 s1=1s_1=1s1 =1 ,则无法操作,同理,如果结尾 sn=0s_n=0sn =0 也无法操作。 如果开头 s1=0s_1=0s1 =0 ,我们对区间 [1,r][1,r][1,r] (1<r<n)(1<r<n)(1<r<n) 做一次操作后,由于 s1s_1s1 前面没有数字了,原本就没有度,所以左端点的改变不会的度产生影响,srs_rsr 和 sr***_{r****r+1 从不同变为相同,因此此次操作会让度减少 111 。同理,对结尾 sn=1s_n=1sn =1 ,做一次操作也会让度减少 111 。 因此,先求出原串的度,优先对串的中间部分进行操作,在判断开头结尾的情况做出相应操作,计算度的减少量即可。 参考代码

    userId_undefined
    NoonMaple
    出道萌新时空双修者题解仙人7月全勤卷王快乐小狗传道者
    44阅读
    1回复
    2点赞
暂无数据

提交答案之后,这里将显示提交结果~

首页