AT_abc441_e.[ABC441E] A > B substring

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个由 A、B、C 三种字符组成的长度为 $ N $ 的字符串 $ S $。

$ S $ 的非空连续子串共有 $ \dfrac{N(N+1)}2 $ 个,请问其中包含的 A 数量多于 B 数量的子串有多少个?

请注意,即使两个子串内容相同,只要它们在 $ S $ 中取出的位置不同,就视为不同的子串。

子串 是指从 $ S $ 的开头删除 $ 0 $ 个或更多字符,以及从末尾删除 $ 0 $ 个或更多字符所得到的字符串。
例如,AB 是 ABC 的子串,但 AC 不是 ABC 的子串。

输入格式

输入通过标准输入给出,格式如下:

$ N $ $ S $

输出格式

输出 $ S $ 的连续子串中,A 的数量多于 B 的数量的子串个数。

输入输出样例

  • 输入#1

    10
    ACBBCABCAB

    输出#1

    8
  • 输入#2

    4
    CCBC

    输出#2

    0
  • 输入#3

    36
    CABACBBBBBAABABACCBCABCCABAABABBCBAC

    输出#3

    136

说明/提示

样例解释 1

满足条件的子串共有 $ 8 $ 个:

A: $ S $ 的第 $ 1 $ 个字符到第 $ 1 $ 个字符

AC: $ S $ 的第 $ 1 $ 个字符到第 $ 2 $ 个字符

CA: $ S $ 的第 $ 5 $ 个字符到第 $ 6 $ 个字符

CABCA: $ S $ 的第 $ 5 $ 个字符到第 $ 9 $ 个字符

A: $ S $ 的第 $ 6 $ 个字符到第 $ 6 $ 个字符

ABCA: $ S $ 的第 $ 6 $ 个字符到第 $ 9 $ 个字符

CA: $ S $ 的第 $ 8 $ 个字符到第 $ 9 $ 个字符

A: $ S $ 的第 $ 9 $ 个字符到第 $ 9 $ 个字符

除了以上这些,没有其他子串满足条件,因此输出 88。

请注意,像 A 或 CA 可以从多个位置取出,但只要取出的位置不同,就视为不同的子串并分别计数。

样例解释 2

也有可能不存在满足条件的子串。

数据范围

  • $ 1\le N\le5\times10 ^ 5 $。

  • $ S $ 是一个由 A、B、C 组成的长度为 $ N $ 的字符串。

  • $ N $ 是整数。

输入解题思路,AI测评打分。不知道怎么写?

首页