trang chủ / đề bài / permmove

Chuyển đổi hoán vị

Đề bài

Mô tả

Cho hai hoán vị a và b của các số nguyên từ 1 đến n.

Bạn cần biến hoán vị a thành hoán vị b bằng một dãy các phép biến đổi. Mỗi phép biến đổi gồm hai thao tác: lấy phần tử cuối cùng ra khỏi hoán vị hiện tại, rồi chèn nó trở lại vào một vị trí tùy ý (chèn vào giữa hai phần tử liên tiếp bất kỳ, hoặc đặt lên đầu hoán vị).

Hãy tìm số phép biến đổi ít nhất cần thực hiện.

Dữ liệu vào

  • Dòng đầu chứa một số nguyên n: số phần tử của mỗi hoán vị.
  • Dòng thứ hai chứa n số nguyên phân biệt: hoán vị a.
  • Dòng thứ ba chứa n số nguyên phân biệt: hoán vị b.

Dữ liệu ra

In ra một số nguyên duy nhất: số phép biến đổi ít nhất để đưa a về b.

Ràng buộc

  • 1≤n≤2·105
  • Mỗi số nguyên từ 1 đến n xuất hiện đúng một lần trong a, và đúng một lần trong b.

Ví dụ

Input Output Giải thích
3
3 2 1
1 2 3
2 Lấy 1 ở cuối đặt lên đầu được 1 3 2, rồi lấy 2 ở cuối chèn vào giữa 1 và 3 được 1 2 3.
5
1 5 2 3 4
1 2 3 4 5
3 Ba bước lần lượt cho 1 4 5 2 3, rồi 1 3 4 5 2, rồi 1 2 3 4 5. Mỗi bước chỉ được đụng vào phần tử cuối nên không thể làm nhanh hơn.
5
1 2 3 4 5
1 5 2 3 4
1 Lấy 5 ở cuối chèn ngay sau 1.

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