#CF3736. 字符串移动
字符串移动
题目描述
问题描述:光头强找到了字符串 和排列 。它们的长度相同且均为 。在一次操作中,他可以使用 将 相乘,从而将 替换为一个新的字符串,其中对于从 到 的任何 ,都满足 。例如,对于 和 ,操作后字符串将变为 。光头强想知道字符串变成其初始值的次数。因为可能需要很长时间,所以他请求您的帮助。它可以被证明所需的操作数始终存在。它可能非常大,因此请使用 位整数类型。
输入格式
输入的第一行包含一个整数 — 输入中测试用例的数量。
每个测试用例的第一行包含一个整数 — 字符串和排列的长度。
每个测试用例的第二行包含一个长度为 的字符串 ,其中包含小写拉丁字母。
每个测试用例的第三行包含 个整数 — 排列 ,所有 都是不同的。
输出格式
输出 行,每行包含输入中相应测试用例的答案。作为答案输出单个整数 — 经过多少次操作后,字符串 将恢复为操作前的状态。
测试样例
3
5
ababa
3 4 5 2 1
5
ababa
2 1 4 5 3
10
codeforces
8 6 1 7 5 2 9 3 10 4
1
6
12
样例说明
在第一个样例中,操作不会改变字符串,因此它将在一次操作后恢复为原来的样子。
在第二个样例中,字符串将按以下方式更改: