trang chủ / bài tập / 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 q1 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 k1), 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 nk.
  • 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

  • 1n,k100
  • qs 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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0