BQUERY2 - Truy vấn lưới chữ nhật

View as PDF

Submit solution

Points: 100.00
Time limit: 1.0s
Memory limit: 1000M
Input: stdin
Output: stdout

Author:
Problem type
Allowed languages
C, C++, GAS64, Pascal, Perl, PHP, Python, Sed, TCL, Text

Cho một lưới chữ nhật gồm ~N~ dòng và ~M~ cột, các dòng được đánh số từ ~1~ đến ~N~ từ trên xuống dưới, các cột được đánh số từ ~1~ đến ~M~ theo thứ tự từ trái sang phải. Mỗi ô sẽ được tô một màu xanh hoặc trắng. Nếu ~S_{x,y} =1~, ô nằm ở dòng ~x~ và cột ~y~ có màu xanh; nếu ~S_{x,y} =0~ thì ô đó có màu trắng.

Từ một ô bất kì, có thể di chuyển sang một ô khác kề với nó (có chung cạnh) và có cùng màu với nó. Nói cách khác, từ một ô ~(x,y)~, ta có thể di chuyển sang ô ~(x′,y′)~ khi và chỉ khi các điều kiện sau được thỏa mãn:

  • ~|x−x′|+|y−y′|=1~
  • ~S_{x,y} = S_{x′,y′}~

Lưới chữ nhật đã cho có tính chất đặc biệt sau: với cặp ô xanh ~a~ và ~b~ bất kì, có tối đa một đường đi đơn (đường đi chỉ đi qua mỗi ô tối đa một lần) xuất phát từ ~a~ và kết thúc tại ~b~.

Có ~Q~ truy vấn, mỗi truy vấn được mô tả bởi bốn số nguyên ~x_1, y_1, x_2, y_2~, yêu cầu:

  • Xét lưới chữ nhật con gồm các ô từ dòng ~x_1~ đến dòng ~x_2~, từ cột ~y_1~ đến cột ~y_2~. Cho biết có bao nhiêu thành phần liên thông gồm các ô màu xanh trong lưới chữ nhật con này.

Hãy viết chương trình xử lí ~Q~ truy vấn trên.

Dữ liệu
  • Dòng đầu tiên gồm ba số nguyên ~N,M,Q~ ~(1≤N,M≤2000,1≤Q≤200000)~ - sốdòng, số cột của lưới chữ nhật và số truy vấn cần xử lý.
  • ~N~ dòng tiếp theo, mỗi dòng gồm một xâu ~M~ kí tự, mỗi kí tự có giá trị ~0~ hoặc ~1~ - mô tả lưới chữ nhật. Dữ liệu vào đảm bảo có tối đa một đường đi đơn giữa hai ô màu xanh bất kì.
  • ~Q~ dòng tiếp theo, mỗi dòng gồm bốn số nguyên ~x_1,y_1,x_2,y_2~ ~(1≤x_1 ≤x_2 ≤ N, 1≤y_1 ≤y_2 ≤ M)~ - mô tả một truy vấn.
Kết quả
  • In ra ~Q~ số nguyên lần lượt là câu trả lời cho các truy vấn..
Ví dụ
Sample Input
4 5 5
10101
11101
00011
11100
2 2 3 4
3 1 4 3
2 3 4 5
3 1 3 3
1 1 4 5
Sample Output
2 
1
3
0
3
Giải thích

Hình vẽ minh họa cho các truy vấn:

  • Truy vấn thứ nhất

  • Truy vấn thứ hai

  • Truy vấn thứ ba

  • Truy vấn thứ tư

  • Truy vấn thứ năm

Chấm điểm
  • Subtask 1 (30% số điểm): ~N,M ≤ 50, Q ≤ 2000~
  • Subtask 2 (70% số điểm): Không có ràng buộc gì thêm

Nguồn: Free Contest


Comments

Please read the guidelines before commenting.


There are no comments at the moment.