Đếm hình chữ nhật 0 - RECTCNT (PreVOI Phú Thọ)

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 2100 (p) Thời gian: 2.0s Bộ nhớ: 1G Input: RECTCNT.INP Output: RECTCNT.OUT

Cô Thái rất thích sự tròn trĩnh của những chữ số \(0\). Là giáo viên chuyên tin, cô Thái cho các bạn học sinh giỏi làm bài tập đếm số lượng hình chữ nhật chỉ chứa toàn số \(0\) trong một bảng hình chữ nhật. Cụ thể, cho một bảng hình chữ nhật kích thước \(n \times n\) ô, mỗi ô chỉ chứa số \(0\) hoặc \(1\). Các hàng đánh số từ \(1\) đến \(n\) từ trên xuống dưới, các cột đánh số từ \(1\) đến \(n\) từ trái qua phải. Có \(q\) truy vấn, mỗi truy vấn sẽ thay đổi giá trị của một ô từ \(0\) thành \(1\) hoặc từ \(1\) thành \(0\).

Yêu cầu: Với mỗi truy vấn, sau khi thay đổi giá trị hãy đếm số hình chữ nhật con (tính cả hình chữ nhật ban đầu) có cạnh song song với cạnh của bảng mà chỉ chứa các số \(0\).

Input

  • Dòng đầu chứa hai số nguyên \(n, q\) (\(1 \le n, q \le 5000\)).
  • Dòng thứ \(i\) trong số \(n\) dòng tiếp theo chứa một xâu \(01\) độ dài \(n\) mô tả hàng thứ \(i\) của bảng ban đầu.
  • Dòng thứ \(i\) trong số \(q\) dòng tiếp theo chứa hai số nguyên \(r, c\) (\(1 \le r, c \le n\)) mô tả tọa độ ô thay đổi giá trị trong truy vấn thứ \(i\).

Các số trên cùng một dòng cách nhau bởi dấu cách.

Output

  • Ghi ra gồm \(q + 1\) dòng trong đó:
    • Dòng đầu là số lượng hình chữ nhật con thỏa mãn của bảng ban đầu;
    • Mỗi dòng trong số \(q\) dòng tiếp theo ghi một số nguyên là kết quả của truy vấn tương ứng.

Example

Test 1

Input
4 3
0001
0100
1000
0010
2 3
2 2
3 1
Output
29
23
31
45

Hạn chế

  • \(20\%\) số test ứng với \(n, q \le 50\).
  • \(20\%\) số test khác ứng với \(n, q \le 150\).
  • \(20\%\) số test khác ứng với \(n, q \le 400\).
  • \(20\%\) số test khác ứng với \(n, q \le 1000\).
  • \(20\%\) số test còn lại không có giới hạn gì thêm.

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.