trang chủ / đề bài / permplay

Chơi với hoán vị

Đề bài

Mô tả

Cho hoán vị q=(q1,q2,…,qn) độ dài n và một số nguyên dương k.

Ban đầu trên bảng có hoán vị đồng nhất p=(1,2,…,n). Sau đó người chơi thực hiện đúng k bước. Tại mỗi bước, người chơi tung đồng xu và làm một trong hai thao tác sau:

  • Mặt sấp: thay p trên bảng bằng hoán vị p′ với pi′=pqi (áp dụng q lên p).
  • Mặt ngửa: thay p trên bảng bằng hoán vị p′ thoả mãn pqi′=pi với mọi i (áp dụng q−1 lên p).

Cho hoán vị mục tiêu s=(s1,s2,…,sn). Hãy xác định xem có tồn tại một dãy k lần tung đồng xu sao cho:

  1. Sau bước thứ k, hoán vị trên bảng đúng bằng s.
  2. Trong suốt quá trình (kể từ trạng thái ban đầu và sau mỗi bước từ 1 đến k−1), hoán vị trên bảng chưa từng bằng s.

Dữ liệu vào

  • Dòng thứ nhất chứa hai số nguyên n và k.
  • Dòng thứ hai chứa hoán vị q1,q2,…,qn.
  • Dòng thứ ba chứa hoán vị s1,s2,…,sn.

Dữ liệu ra

In ra YES nếu tình huống mô tả là khả thi, ngược lại in ra NO.

Ràng buộc

  • 1≤n,k≤100
  • q và s là các hoán vị hợp lệ của {1,2,…,n}.

Ví dụ

Input Output Giải thích
4 1
2 3 4 1
1 2 3 4
NO s trùng với hoán vị ban đầu trên bảng nên đã xuất hiện trước bước thứ k.
4 1
4 3 1 2
3 4 2 1
YES Tung mặt ngửa ở bước 1 sẽ cho hoán vị 3 4 2 1=s.
4 3
4 3 1 2
3 4 2 1
YES Một dãy hợp lệ là sấp–ngửa–ngửa.
4 2
4 3 1 2
2 1 4 3
YES Sấp–sấp cho q2=(2,1,4,3)=s.
4 1
4 3 1 2
2 1 4 3
NO Không thể đạt s chỉ trong 1 bước.

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