(shs.*)
Cho xâu \(s\) có \(n\) ký tự và dãy số \(p_{1},p_{2},\ldots,p_{n}\) đôi một khác nhau và \(p_{i} \in \lbrack 1,n\rbrack\).
Bạn được thực hiện nhiều thao tác với xâu \(s\), mỗi thao tác xâu \(s\) được thay thế bằng xâu \(t\), trong đó \(t_{i} = s_{p_{i}}\).
Ví dụ với với xâu \(s = abcd\) và \(p = \lbrack 2,3,1,4\rbrack\) thì xâu \(t = s_{2}s_{3}s_{1}s_{4} = bcad\) sau đó \(s = t = bcda\)
Yêu cầu: Hãy cho biết cần thực hiện ít nhất bao nhiêu thao tác để xâu \(s\) nhận lại giá trị ban đầu?
Dữ liệu vào:
+ Dòng đầu tiên ghi số nguyên \(t\ (1 \leq t \leq 5000)\) cho biết số lượng testcase. Mỗi testcase có cấu trúc như sau:
Dòng đầu ghi số nguyên \(n\ (1 \leq n \leq 200)\)
Dòng thứ hai ghi xâu \(s\)
Dòng thứ 3 ghi lần lượt các số \(p_{1},p_{2},\ldots,p_{n}\)
Kết quả:
+ Gồm \(t\) dòng, dòng thứ \(i\) ghi kết quả của testcase thứ \(i\)
Ví dụ:
Input | Output |
---|---|
2 4 abcd 2 3 1 4 5 ababa 3 4 5 2 1 | 3 1 |
Code tích cực |
---|
Trong 24h |
Trong 7 ngày |
|
Trong 30 ngày |
|
Thống kê |
---|
AC/Sub: 97887/180710 Pascal: 17121 C++: 130348 Python: 33199 Lượt xem/tải tests: 38905 |