Truy vấn Rừng II

Đề bài

Mô tả

Cho một lưới ô vuông kích thước n×n. Mỗi ô vuông ban đầu là cây (*) hoặc ô trống (.). Bạn cần xử lý q truy vấn thuộc hai loại:

  1. Đổi trạng thái ô (y,x): nếu ô đang là cây thì chuyển thành trống, và ngược lại.
  2. Đếm số cây trong hình chữ nhật con có góc trên trái (y1,x1) và góc dưới phải (y2,x2).

Dữ liệu vào

Dòng đầu chứa hai số nguyên nq: kích thước lưới và số truy vấn.

  • n dòng tiếp theo, mỗi dòng chứa xâu n ký tự mô tả lưới. Ký tự * là cây, . là ô trống.

  • q dòng tiếp theo, mỗi dòng mô tả một truy vấn:

  • 1 y x — đổi trạng thái ô (y,x)

  • 2 y1 x1 y2 x2 — đếm số cây trong hình chữ nhật từ (y1,x1) đến (y2,x2)

Dữ liệu ra

Với mỗi truy vấn loại 2, in ra số cây trong hình chữ nhật tương ứng.

Ràng buộc

  • 1n1000
  • 1q2·105
  • 1yn, 1xn
  • 1y1y2n, 1x1x2n

Ví dụ

Input Output Giải thích
3 4
..
.
.
*
2 1 1 3 3
1 2 2
2 1 1 3 3
2 2 2 3 3
5
6
4
Ban đầu có 5 cây. Sau khi đổi ô (2,2) từ trống thành cây, toàn lưới có 6 cây. Hình chữ nhật (2,2)-(3,3) chứa 4 cây.
2 3
.
.

2 1 1 2 2
1 1 2
2 1 1 2 2
2
3
Ban đầu có 2 cây trên đường chéo. Sau khi đổi ô (1,2) thành cây, toàn lưới có 3 cây.

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