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. rianzz (10/17)
  2. bo0n_0708 (9/27)
  3. minh1806 (7/21)
Trong 7 ngày
  1. tienthanh0201 (45/53)
  2. sangdp.clc (44/73)
  3. bo0n_0708 (38/92)
Trong 30 ngày
  1. conmadem (163/205)
  2. bo0n_0708 (139/237)
  3. bao_khanh (112/176)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 39608

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