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

Bracelet Crossings

Đề bài

Mô tả

Bessie tạo N chiếc vòng tay, mỗi chiếc là một đường cong khép kín không tự cắt. Các vòng không cắt nhau. Sau khi bị xáo trộn, cô dùng M tia sáng thẳng đứng để xác định thứ tự giao cắt.

Mỗi tia thẳng đứng thứ j báo cáo danh sách kj màu theo thứ tự từ trên xuống. Mỗi màu xuất hiện đúng 0 hoặc 2 lần trong mỗi tia (vì vòng là đường khép kín). Không có tia nào đi qua đỉnh hoặc giao điểm đặc biệt.

Hãy xác định xem có tồn tại cấu hình vòng tay hợp lệ phù hợp với dữ liệu quan sát hay không.

Dữ liệu vào

  • Dòng 1: Số nguyên T — số bộ test.
  • Với mỗi bộ test:
    • Dòng 1: Hai số nguyên NM.
    • M dòng tiếp: Mỗi dòng bắt đầu bằng kj, theo sau là kj số nguyên — màu các vòng từ trên xuống.

Dữ liệu ra

Với mỗi bộ test, in YES hoặc NO.

Ràng buộc

  • 1T50.
  • 1N50.
  • 1M50.
  • 0kj2N.

Ví dụ

Input Output Giải thích
5

1 2
2 1 1
2 1 1

1 3
2 1 1
0
2 1 1

2 1
4 1 2 1 2

4 2
6 1 2 2 3 3 1
6 1 2 4 4 2 1

2 2
4 1 1 2 2
4 2 2 1 1
YES
NO
NO
YES
NO
Test 2: vòng 1 phải liên tục nhưng tia giữa không có nó. Test 3: vòng 1 và 2 lồng vào nhau nên cắt nhau.

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