AT_utpc2023_a.Again Make UTPC

通过率:0%

AC君温馨提醒

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

题目描述

给定一个长度为 NN 的字符串 SS,SS 的每个字符均为 U、T、P、C 之一。

你可以进行如下操作任意多次(也可以不操作):

  • 任选一组整数对 (i,j)(i, j),满足 1≤i≤j≤N1 \leq i \leq j \leq N。将 SS 中第 ii 个字符到第 jj 个字符按字母升序排序。

请判断能否通过若干次(可为 0 次)上述操作,使字符串 SS 满足以下条件:

  • SS 包含连续的子串 UTPC。

对于 TT 个测试用例,请对每个案例给出答案:若可行,输出最少需要的操作次数;否则输出 -1。

输入格式

输入以以下格式从标准输入读入。casei\mathrm{case}_i 表示第 ii 个测试用例。

TT case1\mathrm{case}_1 case2\mathrm{case}_2 ⋮\vdots caseT\mathrm{case}_T

每个测试用例如下:

NN SS

输出格式

输出 TT 行,第 ii 行输出第 ii 个测试用例的答案。若可以使字符串 SS 满足条件,则输出所需操作的最小次数;否则输出 −1-1。

输入输出样例

  • 输入#1

    3
    10
    UCUCTPUCUC
    5
    UTCUP
    12
    TUPCTTPCUTPC

    输出#1

    2
    -1
    0

说明/提示

样例解释 1

对于第 1 个测试用例,只需进行如下 2 次操作。若操作次数小于 2,则无法满足条件。

  • 选择 (i,j)=(1,4)(i, j) = (1, 4),字符串变为 CCUUTPUCUC。
  • 选择 (i,j)=(7,10)(i, j) = (7, 10),字符串变为 CCUUTPCCUU。

对于第 2 个测试用例,无论如何操作,都无法满足条件。

对于第 3 个测试用例,不需要任何操作即可满足条件。

约束条件

  • T,NT, N 为整数
  • 1≤T≤2×1051 \leq T \leq 2 \times 10^5
  • 1≤N≤2×1051 \leq N \leq 2 \times 10^5
  • SS 仅包含 U、T、P、C,长度为 NN
  • 所有测试用例中 NN 的总和不超过 2×1052 \times 10^5

由 ChatGPT 5 翻译

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

首页