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

Bãi mìn kỳ lạ

Đề bài

Mô tả

Trên mặt phẳng toạ độ có n quả mìn. Quả mìn thứ i nằm tại ô (xi,yi) và có bộ đếm ti: sau đúng ti giây kể từ lúc bắt đầu, nó tự phát nổ.

Khi một quả mìn tại (x,y) nổ, nó lập tức kích nổ mọi quả mìn cùng hàng hoặc cùng cột với nó ở khoảng cách không quá k, tức là mọi quả mìn tại (x,y) với |yy|k và mọi quả mìn tại (x,y) với |xx|k (vùng nổ có hình dấu cộng). Các quả mìn vừa bị kích nổ lại tiếp tục kích nổ những quả khác theo đúng quy tắc trên, tạo thành phản ứng dây chuyền. Mọi vụ nổ và phản ứng dây chuyền đều xảy ra tức thời.

Ngoài ra, tại mỗi giây 0,1,2, bạn được chọn đúng một quả mìn chưa nổ và kích nổ nó bằng tay (phản ứng dây chuyền cũng xảy ra như trên).

Hãy tìm số giây nhỏ nhất để tất cả các quả mìn đều đã nổ.

Dữ liệu vào

  • Dòng đầu chứa số nguyên q là số bộ dữ liệu.
  • Mỗi bộ dữ liệu gồm:
    • Dòng đầu chứa hai số nguyên nk là số quả mìn và bán kính lan nổ.
    • n dòng tiếp theo, dòng thứ i chứa ba số nguyên xi, yi, ti.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra trên một dòng số giây nhỏ nhất để mọi quả mìn đều đã nổ.

Ràng buộc

  • 1q104
  • 1n2·105, 0k109
  • 109xi,yi109, 0ti109
  • Các quả mìn có toạ độ đôi một khác nhau.
  • Tổng n trên mọi bộ dữ liệu không vượt quá 2·105.

Ví dụ

Input Output Giải thích
3
5 0
0 0 1
0 1 4
1 0 2
1 1 3
2 2 9
5 2
0 0 1
0 1 4
1 0 2
1 1 3
2 2 9
6 1
1 -1 3
0 -1 9
0 1 7
-1 0 1
-1 1 9
-1 -1 7
2
1
0
Bộ 1 (k=0): không quả nào kích nổ được quả nào. Giây 0 kích nổ (2,2); giây 1 kích nổ (0,1) còn (0,0) tự nổ; giây 2 kích nổ (1,1) còn (1,0) tự nổ.
Bộ 2 (k=2): giây 0 kích nổ (2,2); giây 1 quả (0,0) tự nổ và kéo theo cả bốn quả còn lại.
Bộ 3: cả sáu quả nằm trong cùng một khối liên thông nên chỉ cần một lần kích nổ bằng tay ở giây 0.
3
5 0
0 0 1
-1 1 4
1 0 2
2 0 3
2 2 9
5 0
0 0 0
0 1 4
2 0 2
2 1 5
2 2 9
6 1
1 -1 3
0 -1 14
0 1 6
0 0 1
1 1 9
-1 -1 7
2
2
0
Hai bộ đầu đều có k=0 nên năm quả mìn hoàn toàn độc lập. Đến hết giây 2 ta có ba lần kích nổ bằng tay, vừa đủ xử lý các quả có bộ đếm lớn hơn 2.
Bộ 3: sáu quả mìn nối thành một khối qua hàng y=1, cột x=0 và hàng y=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.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