#P16841. [GKS 2021 #B] Increasing Substring

    ID: 19168 远端评测题 2000ms 1024MiB 尝试: 0 已通过: 0 难度: 3 上传者: 标签>字符串动态规划 DP2021Google Kick Start

[GKS 2021 #B] Increasing Substring

题目描述

你的朋友 John 刚度假回来,他想和你分享一个关于字符串的新性质。

John 学到,一个由大写英文字母组成的长度为 LL 的字符串 CC严格递增 的,如果对于每一对下标 iijj,满足 1i<jL1 \le i < j \le L(下标从 11 开始),位置 ii 上的字符小于位置 jj 上的字符。

例如,字符串 ABCADF 是严格递增的,而字符串 ACCFDA 则不是。

现在他教了你这个有趣的新性质,John 决定挑战你:给定一个长度为 NN 的字符串 SS,你需要对每个位置 1iN1 \le i \le N,求出以位置 ii 结尾的最长严格递增子串的长度。

输入格式

输入的第一行给出测试用例的数量 TT。接下来有 TT 个测试用例。

每个测试用例由两行组成。

第一行包含一个整数 NN,表示字符串的长度。

第二行包含一个长度为 NN 的字符串 SS,由大写英文字母组成。

输出格式

对于每个测试用例,输出一行,格式为 Case #x: y1 y2 ... yn,其中 xx 是测试用例编号(从 11 开始),yiy_i 是以位置 ii 结尾的最长严格递增子串的长度。

2
4
ABBC
6
ABACDA
Case #1: 1 2 1 2
Case #2: 1 2 1 2 3 1

提示

在样例 #1 中,以位置 11 结尾的最长严格递增子串是 A。以位置 223344 结尾的最长严格递增子串分别为 ABBBC

在样例 #2 中,每个位置的最长严格递增子串分别为 AABAACACDA

限制条件

1T1001 \le T \le 100

测试集 1

1N1001 \le N \le 100

测试集 2

1N2×1051 \le N \le 2 \times 10^5

翻译由 DeepSeek V4 Pro 完成