AT_arc179_f.[ARC179F] All the Same

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

给你一个只包含字符 A 和 B 的长度为 NN 的字符串 SS。

需要找到一个由字符 1、2 和 3 组成的长度为 NN 的字符串 XX,并定义其得分如下:

  • 初始化四个变量 h1,h2,h3,Ph_1, h_2, h_3, P 为 00。
  • 然后依次处理 i=1,2,…,Ni = 1, 2, \dots, N:
    • 若 SS 的第 ii 个字符为 A,则执行操作 A;若为 B,则执行操作 B。此处,dd 代表 XX 的第 ii 个字符对应的数字。
      • 操作 A:将 hdh_d 增加 22。
      • 操作 B:若 dd 等于 22 或 hdh_d 不等于 h2h_2,则将 PP 设为 −10100-10^{100};否则将 hdh_d 和 h2h_2 各自增加 11。
    • 如果此时 h1h_1 等于 h2h_2 且等于 h3h_3,则将 PP 增加 11。
  • 最终,PP 的值即为字符串 XX 的得分。

请输出一个能使得分最大的字符串 XX。

共有 TT 个测试用例,请分别求解每个测试用例。

输入格式

输入包含多组测试数据,第一行为整数 TT,表示测试用例的个数。

每个测试用例包括两行:

第一行为整数 NN,表示字符串 SS 的长度。

第二行是长度为 NN 的字符串 SS。

输出格式

输出共 TT 行,每行表示一个测试用例的结果。

第 ii 行输出第 ii 个测试用例中得到最高得分的字符串 XX。

如有多种可能的结果,输出任意一种均可。

输入输出样例

  • 输入#1

    5
    4
    ABBA
    5
    AAAAA
    6
    BBBBBB
    7
    ABABABA
    20
    AAABBBBBBBBAAABBBABA

    输出#1

    1333
    12321
    333333
    1313212
    33311111133121111311

说明/提示

  • 1≤T≤1051 \le T \le 10^5
  • 1≤N≤1061 \le N \le 10^6
  • SS 由字符 A 和 B 组成
  • 所有测试用例中的 NN 之和不超过 10610^6

样例解释

以每个字符的处理步骤举例说明变量 (h1,h2,h3,P)(h_1, h_2, h_3, P) 的变化:

  • 第一个测试用例处理结果为 (0,0,0,0)→(2,0,0,0)→(2,1,1,0)→(2,2,2,1)→(2,2,4,1)(0, 0, 0, 0) \rightarrow (2, 0, 0, 0) \rightarrow (2, 1, 1, 0) \rightarrow (2, 2, 2, 1) \rightarrow (2, 2, 4, 1),所以最大得分为 11。
  • 第二个测试用例处理结果为 (0,0,0,0)→(2,0,0,0)→(2,2,0,0)→(2,2,2,1)→(2,4,2,1)→(4,4,2,1)(0, 0, 0, 0) \rightarrow (2, 0, 0, 0) \rightarrow (2, 2, 0, 0) \rightarrow (2, 2, 2, 1) \rightarrow (2, 4, 2, 1) \rightarrow (4, 4, 2, 1),最大得分为 11。
  • 第三个、第四个和第五个测试用例的得分最大值分别为 0,0,20, 0, 2。

注意,一个测试用例可能会存在多个得分最大的 XX,选择其中任意一个输出即可。

本翻译由 AI 自动生成

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

首页