小塔的游戏有一个长度为k且只包含字符0和1字符串,下标为1到k。
定义其权值为:每次操作可以选择一个下标i(1≤i≤k),将[1,i]的字符全部取反(0变1,1变0)。将字符串变为全1的最少操作次数。
例如字符串00110,第一次操作选择i=5,字符串变成11001,第二次操作选择i=4,字符串变成00111,第三次操作选择i=2,字符串变成11111。至少需要3次操作,字符串权值为3。
给出一个长度为n的01字符串,问:有多少个长度为奇数的非空子串的权值是奇数(子串是该字符串中任意连续字符组成的字符串)?
定义子串为,从原字符串中,连续的选择一段字符(可以全选,可以不选)组成的新字符串。
第一行包含一个整数n(1≤n≤105),表示字符串长度。
第二行包含一个长度为n的01字符串
输出包含一行一个整数,表示长度和权值都是奇数的非空子串数量。
输入
5
01010
输出
6
说明
长度为1的子串有[0,1,0,1,0],权值分别为[1,0,1,0,1],奇数的有3个。
长度为3的子串有[010,101,010],权值分别为[3,2,3],奇数的有2个。
长度为5的子串有[01010],权值分别为[5],奇数的有1个。
长度为奇数的子串中,权值为奇数的总共有3+2+1=6
扫码备注加群即可,期待您的到来~
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.