trang chủ / đề bài / swapagain

Lại là đổi chỗ

Đề bài

Mô tả

Cho hai mảng số nguyên a và b, cùng có n phần tử.

Với mảng a, bạn được thực hiện thao tác sau bao nhiêu lần tuỳ ý (có thể không lần nào):

  • Chọn một số nguyên k thoả 1≤k≤⌊n/2⌋.
  • Đổi chỗ tiền tố độ dài k của a với hậu tố độ dài k của a.

Nói cách khác, sau thao tác với tham số k, mảng a1,a2,…,an trở thành

an−k+1,…,an,ak+1,…,an−k,a1,…,ak

Ví dụ, nếu a={1,2,3,4,5,6} thì sau thao tác với k=2 mảng trở thành {5,6,3,4,1,2}.

Vì k≤⌊n/2⌋ nên tiền tố và hậu tố không bao giờ chồng lên nhau. Riêng với n=1 không có giá trị k nào hợp lệ, tức là mảng không thể thay đổi.

Hãy xác định xem có thể biến mảng a thành đúng mảng b hay không.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t: số lượng bộ dữ liệu.
  • Mỗi bộ dữ liệu gồm ba dòng:
    • Dòng thứ nhất chứa số nguyên n: độ dài của hai mảng.
    • Dòng thứ hai chứa n số nguyên a1,a2,…,an.
    • Dòng thứ ba chứa n số nguyên b1,b2,…,bn.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra trên một dòng riêng chữ Yes nếu có thể biến a thành b, ngược lại in ra chữ No. Phải in đúng dạng viết hoa chữ cái đầu như trên.

Ràng buộc

  • 1≤t≤500
  • 1≤n≤500
  • 1≤ai,bi≤109

Ví dụ

Input Output Giải thích
5
2
1 2
2 1
3
1 2 3
1 2 3
3
1 2 4
1 3 4
4
1 2 3 2
3 1 2 2
3
1 2 3
1 3 2
Yes
Yes
No
Yes
No
Bộ 1: thao tác k=1 đổi chỗ hai phần tử, được [2,1]. Bộ 2: hai mảng đã bằng nhau, không cần thao tác. Bộ 3: mảng a không chứa giá trị 3. Bộ 4: thao tác k=1 cho [2,2,3,1], rồi thao tác k=2 cho [3,1,2,2]. Bộ 5: với n=3 chỉ có k=1, phần tử giữa luôn đứng yên nên không thể đổi 2 thành 3 ở vị trí giữa.
2
6
1 2 3 4 6 5
1 2 3 5 4 6
6
1 2 3 4 5 6
5 6 3 4 1 2
No
Yes
Bộ 1 cho thấy việc hai mảng là hoán vị của nhau và các tổng ai+an+1−i trùng nhau vẫn chưa đủ: mảng a ghép các vị trí đối xứng thành {1,5},{2,6},{3,4}, còn mảng b ghép thành {1,6},{2,4},{3,5}, hai cách ghép này khác nhau. Bộ 2: đúng một thao tác k=2.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0