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.

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 — 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 liên thông — một vùng A lớn, hai vùng B riêng lẻ (góc trên trái và vùng B liền nhau), một vùng C, một vùng D, và một vùng B khác.
Truy vấn thứ hai (hàng 3, cột 5–8): "ABBA" → 3 vùng: A, BB, A.

Ghi chú

Giới hạn bộ nhớ: 512MB. Giới hạn thời gian cao hơn 50% so với thông thườ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.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