DỊCH CHUYỂN XÂU

(shs.*)

Cho xâu \(s\)\(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\)\(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

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. vohuyen6688 (10/11)
  2. hoangbo34567 (8/12)
  3. coderpro07 (6/10)
Trong 7 ngày
  1. nhakyy (21/47)
  2. phatkrt (18/39)
  3. bennek (15/16)
Trong 30 ngày
  1. qtaydzs1tg (186/276)
  2. thang8a1 (134/263)
  3. ifindmyself1 (117/244)
Thống kê
AC/Sub: 120817/226949
Pascal: 18142
C++: 157988
Python: 50747
Lượt xem/tải tests: 42171

Lưu Hải Phong - 2020
[email protected]