您当前的位置: 首页 > 

对方正在debug

暂无认证

  • 2浏览

    0关注

    399博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Two Hundred Twenty One (easy version)(思维/前缀和)

对方正在debug 发布时间:2021-09-12 00:06:34 ,浏览量:2

题目 题意:给定一个±字符串,奇数位上的字符串的贡献为正,偶数位上的字符串贡献为逆(+符号做-贡献,-符号做+贡献),字符串的权值为字符串上所有位的贡献和。有若干次查询,每次查询区间[l,r]的字符串,需要删掉最少多少字符,才能使该子串的权值刚好为0。 官方题解 思路:定义b[i]为去掉第i位的字符后,剩余字符串的权值。该数组有一个特点,就是相邻的元素的绝对值差值要么0(同号),要么为2(异号)。现在考虑长度为奇数的字符串,我们设第一位为b[1],最后一位为b[n]。 (1)如果字符串本身为0,则找到了,不需要删字符; (2)假设b[1]或b[n]为0,那么我们就找到权值为0的字符串了,只需删1个字符 (3)如果b[1]和b[n]都不为0,那么我们可以证明,b[1]和b[n]是异号的。(证明很简单,我们可以把字符串首尾4四种组合±,++,-+,—都算一下,即可得出该结论)不妨设b[1]>0,b[n]

关注
打赏
1664895754
查看更多评论
立即登录/注册

微信扫码登录

0.0369s