CF1238D.AB-string

普及+/提高

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

The string t1t2…tkt_1t_2 \dots t_k is good if each letter of this string belongs to at least one palindrome of length greater than 1.

A palindrome is a string that reads the same backward as forward. For example, the strings A, BAB, ABBA, BAABBBAAB are palindromes, but the strings AB, ABBBAA, BBBA are not.

Here are some examples of good strings:

  • tt = AABBB (letters t1t_1, t2t_2 belong to palindrome t1…t2t_1 \dots t_2 and letters t3t_3, t4t_4, t5t_5 belong to palindrome t3…t5t_3 \dots t_5);
  • tt = ABAA (letters t1t_1, t2t_2, t3t_3 belong to palindrome t1…t3t_1 \dots t_3 and letter t4t_4 belongs to palindrome t3…t4t_3 \dots t_4);
  • tt = AAAAA (all letters belong to palindrome t1…t5t_1 \dots t_5);

You are given a string ss of length nn, consisting of only letters A and B.

You have to calculate the number of good substrings of string ss.

字符串 t1t2…tkt_1t_2 \dots t_k 被称为“好字符串”,当且仅当该字符串中的每个字母都至少属于一个长度大于 1 的回文子串。

回文串是指正读与反读都相同的字符串。例如,字符串 A、BAB、ABBA、BAABBBAAB 是回文串,但 AB、ABBBAA、BBBA 不是回文串。

以下是若干“好字符串”的例子:

  • tt = AABBB(字母 t1t_1、t2t_2 属于回文子串 t1…t2t_1 \dots t_2,字母 t3t_3、t4t_4、t5t_5 属于回文子串 t3…t5t_3 \dots t_5);
  • tt = ABAA(字母 t1t_1、t2t_2、t3t_3 属于回文子串 t1…t3t_1 \dots t_3,字母 t4t_4 属于回文子串 t3…t4t_3 \dots t_4);
  • tt = AAAAA(所有字母均属于回文子串 t1…t5t_1 \dots t_5);

给定一个长度为 nn 的字符串 ss,其仅由字母 A 和 B 组成。

你需要计算字符串 ss 中“好字符串”子串的个数。

输入格式

The first line contains one integer nn (1≤n≤3⋅1051 \le n \le 3 \cdot 10^5) — the length of the string ss.

The second line contains the string ss, consisting of letters A and B.

第一行包含一个整数 nn(1≤n≤3⋅1051 \le n \le 3 \cdot 10^5)—— 字符串 ss 的长度。

第二行包含字符串 ss,由字母 A 和 B 组成。

输出格式

Print one integer — the number of good substrings of string ss.

输出一个整数——字符串 ss 中“好子串”的数量。

输入输出样例

  • 输入#1

    5
    AABBB

    输出#1

    6
  • 输入#2

    3
    AAA

    输出#2

    3
  • 输入#3

    7
    AAABABB

    输出#3

    15

说明/提示

In the first test case there are six good substrings: s1…s2s_1 \dots s_2, s1…s4s_1 \dots s_4, s1…s5s_1 \dots s_5, s3…s4s_3 \dots s_4, s3…s5s_3 \dots s_5 and s4…s5s_4 \dots s_5.

In the second test case there are three good substrings: s1…s2s_1 \dots s_2, s1…s3s_1 \dots s_3 and s2…s3s_2 \dots s_3.

在第一个测试用例中,有六个“好”子串:s1…s2s_1 \dots s_2、s1…s4s_1 \dots s_4、s1…s5s_1 \dots s_5、s3…s4s_3 \dots s_4、s3…s5s_3 \dots s_5 和 s4…s5s_4 \dots s_5。

在第二个测试用例中,有三个“好”子串:s1…s2s_1 \dots s_2、s1…s3s_1 \dots s_3 和 s2…s3s_2 \dots s_3。

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

首页