| 题目名称 | 3707. [CF1690F]Shifting String |
|---|---|
| 输入输出 | shifting.in/out |
| 难度等级 | ★★ |
| 时间限制 | 1000 ms (1 s) |
| 内存限制 | 256 MiB |
| 测试数据 | 10 |
| 题目来源 |
|
| 开放分组 | 全部用户 |
| 提交状态 | |
| 分类标签 | |
| 分享题解 |
| 通过:0, 提交:0, 通过率:0% | |||
| 关于 Shifting String 的近10条评论(全部评论) |
|---|
给定一长为 $n$ 的字符串 $s$(下标从 $1$ 开始) 与 $1\sim n$ 的排列 $p$。
定义 $s^0=s,s^k_i=s^{k-1}_{p_i}$。
求最小的 $k\gt 0$ 使 $s^k=s$。$t$ 组数据。
第一行一个数字 $t$ 表示数据组数。
每组数据中,第一行一个整数 $n$。
第二行,一个字符串 $s$。
第三行,一个长为 $n$ 的序列 $p$,保证 $p$ 是 $n$ 的一个排列。
$t$ 行,第 $i$ 行为第 $i$ 组数据的答案,即最小的 $k$。
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
在此键入。
对于 20% 的数据,保证 $1 \le t \le 10,1 \le n \le 10$。
另有 10% 的数据,保证 $\forall i \in [1,n],p_i = i$。
对于 100% 的数据,保证 $1 \le t \le 5000,1 \le n \le 200$。
保证答案在 C++ long long 范围内。
CF1690F