DỊCH CHUYỂN XÂU

Cho xâu ~s~ có ~n~ ký tự và dãy số ~p_1,p_2,…,p_n~ đôi một khác nhau và ~p_i∈[1,n]~.

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=[2,3,1,4]~ 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≤t≤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≤n≤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,…,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

2
4
abcd
2 3 1 4
5
ababa
3 4 5 2 1 

Output

3
1 

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

hpcode.edu.vn
Code tích cực
Trong 24h
  1. topteo1243 (18/22)
  2. cao_thanh_dat (6/11)
  3. nsduc83 (4/22)
Trong 7 ngày
  1. caubeioi (39/63)
  2. nhatanh (33/47)
  3. dat092010 (24/35)
Trong 30 ngày
  1. caubeioi (179/327)
  2. phamnhi (153/428)
  3. bestsoilvam (151/248)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38226

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