luogu#B3891. [语言月赛 202311] 基因

    ID: 4907 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 2 上传者: 标签>2023O2优化字符串(入门)语言月赛

[语言月赛 202311] 基因

题目描述

有一个长度为 nn 的字符串 SS。其只包含有大写字母。

小 A 将 SS 进行翻转后,得到另一个字符串 SS'。两个字符串 SSSS' 对应配对。例如说,对于 S=ATCGTS=\tt{ATCGT},则有 S=TGCTAS'=\tt{TGCTA}SSSS' 进行配对。

对于两个字符串 S,SS,S' 的第 ii1in1 \leq i \leq n)个字母,配对规则如下:

  • 定义 A\tt AT\tt TC\tt CG\tt G 为可以配对的字母。
  • 如果 SiS_iSiS_i' 为可以配对的字母,那么该字符串的稳定性增加 ii
  • 如果 SiS_i 或者 SiS_i' 中任意一方出现非 A,T,C,G\tt A,\tt T,\tt C,\tt G 的字母,则整个字符串的稳定性将直接为 00

现在给定 TT 个字符串 SS,对每一个字符串,询问若用其翻转再进行配对,其稳定性将如何。

输入格式

第一行输入一个正整数 TT,表示给定多少个字符串。对于每一个字符串:

  • 第一行输入一个正整数 nn,表示字符串的长度;
  • 第二行输入一个字符串 SS,表示该字符串。

输出格式

对于每个字符串,输出一行一个整数,表示若用其翻转再进行配对,其稳定性将如何。

3
5
ATCGT
6
ACATGT
5
ATCGU
6
21
0

提示

【样例解释】

  • 对于第一个字符串,S=ATCGTS=\tt{\red{A}TCG\blue{T}}S=TGCTAS'=\tt{\red{T}GCT\blue{A}}。标红色的一组与蓝色的一组为可以配对的字母。它们分别是 SS 的第 11 个字母和第 55 个字母,因此稳定性是 1+5=61+5=6
  • 对于第二个字符串,$S=\tt{\red{A}\blue{C}\red{A}\blue{T}\red{G}\blue{T}}$,$S'=\tt{\red{T}\blue{G}\red{T}\blue{A}\red{C}\blue{A}}$,每个对应位置上的字母都可以配对,因此稳定性是 1+2+3++6=211+2+3+\dots+6=21
  • 对于第三条字符串,出现了非 A,T,C,G\tt A,\tt T,\tt C,\tt G 的字母 U\tt U,因此稳定性为 00

【数据范围】

对于所有数据,保证:1T51\leq T\leq 51n1051\leq n\leq 10^5SS 中出现的所有字母保证为大写英语字母。