trang chủ / đề bài / lc_tst_22_c

Bảng

Đề bài

Mô tả

Cho một hình chữ nhật gồm N hàng, M cột, các hàng được đánh số từ trên xuống dưới, các cột đánh số từ trái qua phải (bắt đầu từ 0), ô trái trên là ô (0,0), ô phải dưới là ô (N−1,M−1). Người ta viết các số từ 0 đến N·M−1 vào bảng trên một cách ngẫu nhiên, mỗi ô một số.

Một bảng con là một bảng hình chữ nhật gồm các ô liên tiếp của bảng ban đầu, có kích thước nhỏ hơn hoặc bằng bảng ban đầu. Một bảng con kích thước a×b được gọi là đẹp nếu trong đó có đủ các số từ 0 đến a·b−1. Bản thân toàn bộ bảng cũng là một bảng con, và hiển nhiên nó luôn là bảng đẹp.

Có Q truy vấn, mỗi truy vấn đổi chỗ hai số X và Y trong bảng. Các truy vấn được thực hiện lần lượt: truy vấn sau áp dụng trên bảng đã bị thay đổi bởi các truy vấn trước. Sau mỗi truy vấn, hãy đếm số bảng con đẹp của bảng hiện tại.

Dữ liệu vào

  • Dòng đầu tiên ghi ba số nguyên N,M,Q (1≤N·M≤106, 1≤Q≤5·104) là số hàng, số cột và số truy vấn.
  • N·M dòng tiếp theo mô tả tọa độ các số trong bảng: dòng thứ i+1 trong số này (0≤i<N·M) ghi hai số nguyên ri,ci (0≤ri<N, 0≤ci<M) cho biết số i nằm ở hàng ri, cột ci. Các ô (ri,ci) đôi một khác nhau.
  • Q dòng tiếp theo, mỗi dòng ghi hai số nguyên X,Y (0≤X,Y<N·M) là truy vấn đổi vị trí hai số X và Y. Nếu X=Y thì bảng không thay đổi.

Dữ liệu ra

In ra Q dòng, dòng thứ j là số bảng con đẹp sau truy vấn thứ j.

Ràng buộc

  • 1≤N·M≤106.
  • 1≤Q≤5·104.

Subtasks

  • Subtask 1 (15% số điểm): N·M≤100, Q≤5000.
  • Subtask 2 (25% số điểm): N·M·Q≤5·107.
  • Subtask 3 (20% số điểm): N,M≤104, Q≤5000.
  • Subtask 4 (10% số điểm): Q≤5000, chênh lệch giữa hai số đổi chỗ nhỏ hơn 104 (|X−Y|<104).
  • Subtask 5 (10% số điểm): N=1.
  • Subtask 6 (20% số điểm): Không có giới hạn nào thêm.

Ví dụ

Input Output Giải thích
2 3 2
0 0
1 0
1 1
0 1
0 2
1 2
0 5
0 5
3
4
Bảng ban đầu có hàng 0 là 0,3,4 và hàng 1 là 1,2,5; nó có 4 bảng con đẹp: ô chứa số 0, cột chứa 0,1, bảng 2×2 chứa 0,1,2,3 và toàn bộ bảng. Sau khi đổi chỗ số 0 và số 5, bảng có hàng 0 là 5,3,4 và hàng 1 là 1,2,0; chỉ còn 3 bảng con đẹp: ô chứa số 0, hàng 1 (chứa 0,1,2) và toàn bộ bảng. Truy vấn thứ hai đổi chỗ lại, bảng trở về như ban đầu.
1 4 3
0 1
0 0
0 2
0 3
0 3
1 2
2 2
2
3
3
Bảng ban đầu là 1,0,2,3. Sau truy vấn 1 bảng là 1,3,2,0: các bảng con đẹp là ô chứa số 0 và toàn bộ bảng. Sau truy vấn 2 bảng là 2,3,1,0: thêm bảng con 1×2 chứa 1,0. Truy vấn 3 có X=Y nên bảng không đổi.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0