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

Chán chường

Đề bài

Mô tả

Cho một lưới ô vuông kích thước n×n. Trên lưới có đúng n ô được đánh dấu sao cho không có hai ô đánh dấu nào cùng hàng hoặc cùng cột. Cụ thể, ở cột i có đúng một ô được đánh dấu, nằm ở hàng pi. Các hàng được đánh số từ 1 đến n theo chiều từ dưới lên trên, các cột được đánh số từ 1 đến n theo chiều từ trái sang phải.

Ta gọi một hình chữ nhật có các cạnh song song với cạnh lưới là đẹp nếu đúng hai trong bốn ô ở góc của nó là ô được đánh dấu. Có đúng n(n1)2 hình chữ nhật đẹp (mỗi cặp ô đánh dấu xác định duy nhất một hình chữ nhật đẹp nhận hai ô đó làm hai góc đối diện).

Cho q hình chữ nhật truy vấn (không nhất thiết là hình chữ nhật đẹp), với mỗi hình chữ nhật truy vấn hãy tìm độ đẹp của nó. Độ đẹp của một hình chữ nhật là số hình chữ nhật đẹp có chung ít nhất một ô với hình chữ nhật đó.

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.
  • Dòng thứ hai chứa n số nguyên p1,p2,,pn (tất cả đôi một khác nhau): ở cột i có ô đánh dấu tại hàng pi.
  • q dòng tiếp theo, mỗi dòng mô tả một hình chữ nhật truy vấn bằng bốn số nguyên l,d,r,u: lr là cột trái nhất và cột phải nhất, du là hàng dưới nhất và hàng trên nhất của hình chữ nhật.

Dữ liệu ra

Với mỗi truy vấn, in ra độ đẹp của hình chữ nhật đó trên một dòng riêng.

Ràng buộc

  • 2n2·105
  • 1q2·105
  • 1pin, các pi đôi một khác nhau
  • 1lrn, 1dun

Ví dụ

Input Output Giải thích
4 2
1 3 2 4
4 1 4 4
1 1 2 3
3
5
4·32=6 hình chữ nhật đẹp. Truy vấn thứ nhất (cột 4, hàng 1 tới 4) cắt 3 hình chữ nhật đẹp. Truy vấn thứ hai (cột 1 tới 2, hàng 1 tới 3) cắt 5 hình chữ nhật đẹp: chỉ có hình chữ nhật đẹp tạo bởi hai ô ở cột 3,4 là không cắt nó.
2 3
1 2
1 1 1 1
1 1 1 2
1 1 2 2
1
1
1
Chỉ có một hình chữ nhật đẹp duy nhất, chiếm trọn lưới 2×2, nên nó cắt mọi truy vấn.

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