#B4153. [厦门小学生 C++ 2022] 序列问题

    ID: 13116 远端评测题 500ms 256MiB 尝试: 0 已通过: 0 难度: 4 上传者: 标签>2022福建前缀和差分小学科创活动

[厦门小学生 C++ 2022] 序列问题

题目背景

本试题为 2022 年厦门市小学生 C++ 语言复赛试题,数据为洛谷自造。

初赛为笔试。

考虑到评测机性能差异,本题时限相较原题下调 0.5s。

题目描述

高老师是一位经验丰富的信息学竞赛指导教师,善于开发学生的创造性思维。周末课上,他给学生留下一道关于 0101 串的思考题(所谓 0101 串就是由字符 0011 组成的字符串):给定一个长度为 nn0101 串,他想知道有多少个子串,满足其中 11 的个数比 00 的个数多。现在高老师请会编程的你来帮忙计算答案。

输入格式

第一行一个整数,表示字符串的长度。

第二行一个字符串,表示 0101 串。

输出格式

输出一行,包括一个整数,表示满足条件的子串的个数。

3
111
6

提示

样例解释

满足条件的子串有:11111111111111111111

数据范围

  • 对于 20%20\% 的数据,n3000n\leq 3000
  • 对于另外的 10%10\% 的数据,n107n\leq 10^7,字符串全为 11
  • 对于另外的 20%20\% 的数据,n2×105n\leq 2\times 10^5
  • 对于另外的 20%20\% 的数据,n2×106n\leq 2\times 10^6
  • 对于另外的 100%100\% 的数据,n107n\leq 10^7