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

Tô Màu Theo Số

Đề bài

Mô tả

Cho một lưới N×M ô, mỗi ô được tô một trong 26 màu (chữ cái in hoa A–Z). Với mỗi truy vấn, bạn được cho một hình chữ nhật con của lưới, hãy đếm số vùng liên thông của các ô cùng màu trong hình chữ nhật đó.

Hai ô được coi là liền kề nếu chúng chia sẻ một cạnh chung. Một vùng liên thông là tập hợp tối đa các ô cùng màu mà có thể đi từ ô này sang ô kia chỉ qua các ô liền kề cùng màu. Lưu ý các ô nằm ngoài hình chữ nhật con không được dùng để nối các vùng bên trong.

Dữ liệu vào

  • Dòng đầu: ba số nguyên N, M, Q.
  • N dòng tiếp theo: mỗi dòng là một xâu M ký tự in hoa (màu của các ô trong hàng đó).
  • Q dòng tiếp theo: mỗi dòng chứa bốn số nguyên x1, y1, x2, y2, mô tả hình chữ nhật con từ hàng x1, cột y1 đến hàng x2, cột y2 (1-indexed, bao gồm cả hai đầu mút).

Dữ liệu ra

Với mỗi truy vấn, in ra số vùng liên thông trên một dòng riêng.

Ràng buộc

  • 1N,M1000
  • 1Q1000
  • 1x1x2N, 1y1y2M

Ví dụ

Input Output Giải thích
4 8 9
ABBAAAAA
ABAAAABA
CAADABBA
AAAAAAAA
1 1 4 8
3 5 3 8
1 3 2 4
1 4 2 5
1 1 3 3
4 4 4 4
2 6 4 8
3 5 4 6
1 6 3 8
6
3
2
1
4
1
3
2
2
Truy vấn đầu tiên (toàn bộ lưới) có 6 vùng: hai vùng màu A (một vùng nhỏ gồm hai ô ở góc trên trái và một vùng lớn chiếm phần còn lại), hai vùng màu B (ba ô quanh góc trên trái và ba ô ở phía dưới phải), một vùng màu C và một vùng màu D.
Truy vấn thứ hai lấy hàng 3, cột 5–8 nên chỉ còn xâu ABBA, tách thành 3 vùng: A, BB, A.
Truy vấn thứ tư lấy hàng 1–2, cột 4–5 gồm bốn ô đều màu A nên chỉ có 1 vùng.

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