#P1997. 2024.9.5-XC-第2题-01字符串

2024.9.5-XC-第2题-01字符串

题目内容

小塔的游戏有一个长度为kk且只包含字符0011字符串,下标为11kk

定义其权值为:每次操作可以选择一个下标ii(1ik1≤i≤k),将[1,i1,i]的字符全部取反(0011,1100)。将字符串变为全11的最少操作次数。

例如字符串0011000110,第一次操作选择i=5i=5,字符串变成1100111001,第二次操作选择i=4i=4,字符串变成0011100111,第三次操作选择i=2i=2,字符串变成1111111111。至少需要33次操作,字符串权值为33

给出一个长度为nn0101字符串,问:有多少个长度为奇数的非空子串的权值是奇数(子串是该字符串中任意连续字符组成的字符串)?

定义子串为,从原字符串中,连续的选择一段字符(可以全选,可以不选)组成的新字符串。

输入描述

第一行包含一个整数nn(1n1051≤n≤10^5),表示字符串长度。

第二行包含一个长度为nn0101字符串

输出描述

输出包含一行一个整数,表示长度和权值都是奇数的非空子串数量。

样例1

输入

5
01010

输出

6

说明

长度为11的子串有[0,1,0,1,00,1,0,1,0],权值分别为[1,0,1,0,11,0,1,0,1],奇数的有33个。

长度为33的子串有[010,101,010010,101,010],权值分别为[3,2,33,2,3],奇数的有22个。

长度为55的子串有[0101001010],权值分别为[55],奇数的有11个。

长度为奇数的子串中,权值为奇数的总共有3+2+1=63+2+1=6