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. nongvantien11 (34/51)
  2. nnminh1806 (15/30)
  3. hdang091011 (13/17)
Trong 7 ngày
  1. nongvantien11 (99/155)
  2. qtaydzs1tg (72/135)
  3. trungo0 (49/91)
Trong 30 ngày
  1. nongvantien11 (192/300)
  2. trungo0 (131/242)
  3. ngocbichh (110/267)
Thống kê
AC/Sub: 120817/226949
Pascal: 18142
C++: 157988
Python: 50747
Lượt xem/tải tests: 41085

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