trang chủ / bài tập / custclean

Custodial Cleanup

Đề bài

Mô tả

Bác John quản lý một nhà nghỉ dành cho bò. Nhà nghỉ có N chuồng được đánh số từ 1 đến NM hành lang, mỗi hành lang nối hai chuồng khác nhau theo cả hai chiều. Chuồng thứ i được sơn màu Ci và ban đầu chứa đúng một chiếc chìa khóa màu Si.

Bác John xuất phát tại chuồng 1, trong tay không cầm chìa khóa nào. Bác được phép lặp lại tùy ý các thao tác sau:

  • Nhặt một chiếc chìa khóa đang nằm trong chuồng bác đang đứng. Bác có thể cầm nhiều chìa khóa cùng lúc.
  • Đặt một chiếc chìa khóa đang cầm xuống chuồng bác đang đứng. Một chuồng có thể chứa nhiều chìa khóa cùng lúc.
  • Đi qua một hành lang để vào chuồng 1. Thao tác này luôn được phép.
  • Đi qua một hành lang để vào một chuồng khác chuồng 1. Thao tác này chỉ được phép nếu bác đang cầm ít nhất một chiếc chìa khóa có màu trùng với màu của chuồng sắp bước vào.

Bác John muốn sắp xếp lại sao cho cuối cùng chuồng thứ i chứa đúng một chiếc chìa khóa màu Fi, và chính bác quay về đứng tại chuồng 1 mà không cầm chìa khóa nào. Dữ liệu bảo đảm S là một hoán vị của F.

Cho T nhà nghỉ, với mỗi nhà nghỉ hãy cho biết bác John có thể thực hiện được yêu cầu trên hay không.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên T, số nhà nghỉ.
  • Trước mỗi nhà nghỉ có một dòng trống. Sau đó:
    • Dòng thứ nhất chứa hai số nguyên NM.
    • Dòng thứ hai chứa N số nguyên C1,C2,,CN.
    • Dòng thứ ba chứa N số nguyên S1,S2,,SN.
    • Dòng thứ tư chứa N số nguyên F1,F2,,FN.
    • M dòng tiếp theo, mỗi dòng chứa hai số nguyên phân biệt uv, cho biết có một hành lang nối chuồng u và chuồng v. Không có hành lang nào bị lặp lại.

Dữ liệu ra

Với mỗi nhà nghỉ, in ra trên một dòng riêng YES nếu bác John thực hiện được yêu cầu, ngược lại in ra NO.

Ràng buộc

  • 1T100
  • 1N105, 0M105
  • 1Ci,Si,FiN
  • 1u,vNuv
  • S là một hoán vị của F
  • Tổng N trên mọi nhà nghỉ không vượt quá 105, tổng M trên mọi nhà nghỉ không vượt quá 2×105

Ví dụ

Input Output Giải thích
2

5 5
4 3 2 4 3
3 4 3 4 2
2 3 4 4 3
1 2
2 3
3 1
4 1
4 5

4 3
3 2 4 1
2 3 4 4
4 2 3 4
4 2
4 1
4 3
YES
NO
Nhà nghỉ 1: bác John nhặt chìa khóa màu 3 ở chuồng 1, sang chuồng 2 (màu 3) lấy thêm chìa khóa màu 4, rồi lần lượt qua chuồng 4, 5, 3 để đổi chìa khóa và cuối cùng đặt lại đủ theo F trước khi về chuồng 1. Nhà nghỉ 2: không có cách nào.
5

2 0
1 2
2 2
2 2

2 1
1 1
2 1
2 1
1 2

2 1
1 1
2 1
1 2
1 2

2 1
1 1
1 2
2 1
1 2

5 4
1 2 3 4 4
2 3 5 4 2
5 3 2 4 2
1 2
1 3
1 4
4 5
YES
YES
NO
YES
NO
Nhà nghỉ 1: không có hành lang nào nhưng các chìa khóa đã đúng chỗ. Nhà nghỉ 3: chìa khóa trong chuồng 1 có màu 2 trong khi chuồng 2 có màu 1, nên bác John không bao giờ vào được chuồng 2 để đổi chìa khóa. Nhà nghỉ 4: cùng hình dạng nhưng chìa khóa ban đầu ở chuồng 1 có màu 1, vừa đúng màu chuồng 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.400 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.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0