前缀复制机
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

lbromine想要复制一个字符串。最开始他有一个空串,每次操作lbromine可以添加一个任意小写字母到当前字符串的末尾。同时,lbromine有一个神奇的前缀复制机,他可以使用一次操作复制当前字符串的任意一个前缀将其添加到当前字符串的末尾(可以复制无数次)。

你能知道lbromine最少需要几次操作才能复制出给定的字符串 s

输入描述:

第一行一个正整数 t 表示有 t 组数组。

每组数据第一行一个整数 n 表示字符串的长度。

每组数据第二行一个字符串 s 表示给定的字符串。

输出描述:

每组数据输出一个整数表示最少操作数。
示例1

输入

复制
1
5
ababc

输出

复制
4

备注:

对于 30\% 的数据,t=10,n=50

对于 60\% 的数据,\sum n\leq 5\times 10^3

对于 100\% 的数据,\sum n\leq 1\times 10^5