#P10841. 【MX-J2-T2】Turtle and Strings

    ID: 10277 Type: RemoteJudge 1000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 2 Uploaded By: Tags>动态规划,dp贪心O2优化

【MX-J2-T2】Turtle and Strings

题目描述

给你一个仅由小写字母组成的字符串 ss

一个字符串序列 t1,t2,,tkt_1, t_2, \ldots, t_k 是合法的当且仅当:

  • s=t1+t2++tks = t_1 + t_2 + \cdots + t_k,此处 ++ 为字符串拼接;
  • 1ik1,titi+1\forall 1 \le i \le k - 1, t_i \ne t_{i + 1}

求合法的字符串序列的长度的最大值。

输入格式

本题有多组测试数据。

第一行输入一个正整数 TT,表示测试数据组数。

对于每组测试数据:

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

第二行包含一个长度为 nn 的仅由小写字母组成的字符串 ss

输出格式

对于每组数据,输出一行一个整数,表示合法的字符串序列的长度的最大值。

4
3
abc
5
aabbb
6
aaaaaa
10
pppqqppppq

3
3
4
7

提示

【样例解释】

在第一组数据中,一个合法且长度最大的字符串序列为 [a,b,c][\texttt{a}, \texttt{b}, \texttt{c}]

在第二组数据中,一个合法且长度最大的字符串序列为 [a,abb,b][\texttt{a}, \texttt{abb}, \texttt{b}]

在第三组数据中,一个合法且长度最大的字符串序列为 [a,aa,a,aa][\texttt{a}, \texttt{aa}, \texttt{a}, \texttt{aa}]

【数据范围】

本题采用捆绑测试且开启子任务依赖。

子任务编号 分值 nn \le n\sum n \le 特殊性质 子任务依赖
11 1818 99 10410^4
22 2121 5050 10310^3 11
33 1212 10610^6 s1=s2==sns_1 = s_2 = \cdots = s_n
44 2323 恰好存在一个位置 1in11 \le i \le n - 1 使得 sisi+1s_i \ne s_{i + 1}
55 2626 1,2,3,41, 2, 3, 4

对于所有数据,满足 1T1051 \le T \le 10^51n,n1061 \le n, \sum n \le 10^6ss 仅由小写字母组成。