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. hnam_107 (10/14)
  2. hutieu (8/13)
  3. vuong1903 (7/12)
Trong 7 ngày
  1. ndhdang091011 (48/56)
  2. trungdimid (40/55)
  3. bophanha789 (39/91)
Trong 30 ngày
  1. ndhdang091011 (198/252)
  2. cosu (91/170)
  3. trungdimid (82/150)
Thống kê
AC/Sub: 120817/226949
Pascal: 18142
C++: 157988
Python: 50747
Lượt xem/tải tests: 42758

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