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

Vòi Phun Nước

Đề bài

Mô tả

Farmer John có một cánh đồng hình vuông kích thước (N1)×(N1), với góc tây nam tại (0,0) và góc đông bắc tại (N1,N1). Trên cánh đồng có đúng N vòi phun nước hai chiều đặt tại các tọa độ nguyên.

Mỗi vòi phun nước đặt tại tọa độ (i,j) hoạt động như sau:

  • Tưới nước tất cả các điểm (x,y) thỏa xiyj (vùng đông bắc).
  • Bón phân tất cả các điểm (x,y) thỏa xiyj (vùng tây nam).

Một điểm (x,y) với 0x,yN1 được coi là hợp lệ nếu nó vừa được tưới nước bởi ít nhất một vòi phun nước, vừa được bón phân bởi ít nhất một vòi phun nước.

Biết rằng mỗi hàng và mỗi cột đều có đúng một vòi phun nước (tức là các tọa độ x của các vòi tạo thành một hoán vị của {0,1,,N1}, và tương tự với các tọa độ y).

Hãy đếm số hình chữ nhật có các cạnh song song với trục tọa độ, có diện tích dương, với tất cả bốn góc đều là điểm hợp lệ (có tọa độ nguyên), và tất cả các điểm nguyên bên trong và trên biên của hình chữ nhật đều là điểm hợp lệ.

Nói cách khác, đếm số cặp điểm nguyên (x1,y1)(x2,y2) với 0x1<x2N10y1<y2N1 sao cho toàn bộ hình chữ nhật [x1,x2]×[y1,y2] chỉ gồm các điểm hợp lệ.

Dữ liệu vào

  • Dòng đầu tiên: số nguyên N (1N105).
  • N dòng tiếp theo: mỗi dòng gồm hai số nguyên ij (0i,jN1) là tọa độ của một vòi phun nước.
  • Đảm bảo mỗi hàng và mỗi cột có đúng một vòi phun nước.

Dữ liệu ra

In ra một số nguyên duy nhất: số hình chữ nhật hợp lệ, lấy modulo 109+7.

Ràng buộc

  • 1N105
  • Các vòi phun nước tạo thành một hoán vị: mỗi hàng và mỗi cột có đúng một vòi.

Ví dụ

Input Output Giải thích
5
0 4
1 1
2 2
3 0
4 3
21 Với N=5, có 21 hình chữ nhật hợp lệ. Ví dụ, hình chữ nhật [0,4]×[0,4] (toàn bộ cánh đồng) là hợp lệ.

Ghi chú

Đây là bài USACO 2018 January Platinum, bài 3.

Một hình chữ nhật [x1,x2]×[y1,y2] (với x1<x2, y1<y2) hợp lệ khi và chỉ khi với mỗi cột x[x1,x2], tập hợp các y hợp lệ trong cột đó chứa toàn bộ đoạn [y1,y2].

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