AT_arc104_b.[ARC104B] DNA Sequence

普及-

通过率:0%

AC君温馨提醒

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

题目描述

有一个由 A、T、C、G 组成的长度为 NN 的字符串 SS。

长度相等的字符串 T1T_1、T2T_2 被称为“互补的”,当 ∣T1∣=l|T_1| = l 时,对于任意 1≤i≤l1 \leq i \leq l,T1T_1 和 T2T_2 的第 ii 个字符的组合要么是(A 和 T),要么是(C 和 G)的组合(例如,A 和 T 的组合时,无论哪个字符属于 T1T_1 都可以)。

请计算 SS 的所有连续且非空的子串 TT 中,满足以下条件的子串个数:

  • 存在一个将 TT 的字符重新排列后的字符串,使其与 TT 互补。

注意,即使字符串内容相同,只要在 SS 中的位置不同,也视为不同的子串。

输入格式

输入以如下格式从标准输入读入:

NN SS

输出格式

输出 SS 的所有连续且非空的子串 TT 中,满足条件的子串个数。

输入输出样例

  • 输入#1

    4 AGCT

    输出#1

    2
  • 输入#2

    4 ATAT

    输出#2

    4
  • 输入#3

    10 AAATACCGCG

    输出#3

    6

说明/提示

限制条件

  • 1≤N≤50001 \leq N \leq 5000
  • SS 仅由 A、T、C、G 组成

样例解释 1

有如下 22 个子串满足条件:

  • GC(第 22 个字符到第 33 个字符),将其重新排列为 CG 后是互补的。
  • AGCT(第 11 个字符到第 44 个字符),将其重新排列为 TCGA 后是互补的。

样例解释 2

有如下 44 个子串满足条件:

  • AT(第 11 个字符到第 22 个字符),将其重新排列为 TA 后是互补的。
  • TA(第 22 个字符到第 33 个字符),将其重新排列为 AT 后是互补的。
  • AT(第 33 个字符到第 44 个字符),将其重新排列为 TA 后是互补的。
  • ATAT(第 11 个字符到第 44 个字符),将其重新排列为 TATA 后是互补的。

由 ChatGPT 4.1 翻译

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

首页