#P7970. [KSN2021] Binary Sea

[KSN2021] Binary Sea

题目描述

有一个 N×MN\times M 的网格,行列从 00 开始,从左上到右下编号。

ii 行,第 jj 列的格子是黑格当且仅当 i and j=0i\text{ and }j=0

两个黑格联通当且仅当它们都是黑格且它们可以经过若干个有邻边的黑格到达。

给定 QQ 个矩形,左上角为 (x1,y1)(x_1,y_1),右下角为 (x2,y2)(x_2,y_2),你需要对于每个矩形求出所有的黑格形成了多少连通块。

输入格式

第一行输入三个整数 N,M,QN,M,Q,代表网格大小和询问数量。

接下来 QQ 行,每行输入四个整数 x1,y1,x2,y2x_1,y_1,x_2,y_2,代表询问矩形。

输出格式

对于每组数据输出一行,包含一个整数,代表答案。

6 5 4
0 0 3 2
0 2 1 3
0 1 2 4
5 4 5 4
1
1
2
0

提示

【样例解释】

以下为样例中四个询问的图示:

【数据范围】

本题采用捆绑测试。

  • Subtask 1(5 points):只存在一组数据,满足 N=M=12N = M=12Q=3Q=3,每次询问的 (x1,y1,x2,y2)(x_1,y_1,x_2,y_2) 依次为 (1,1,9,8)(1,1,9,8)(8,8,11,11)(8,8,11,11)(4,3,5,9)(4,3,5,9)
  • Subtask 2(11 points):N,M,Q200N,M,Q\le 200
  • Subtask 3(10 points):N,M,Q2000N,M,Q\le 2000x1=x2x_1=x_2
  • Subtask 4(20 points):N,M,Q2000N,M,Q\le 2000
  • Subtask 5(4 points):x1=x2=0x_1=x_2=0
  • Subtask 6(6 points):保证对于每个询问存在整数 kk 使得 x1=x2=2kx_1=x_2=2^k
  • Subtask 7(29 points):x1=x2x_1=x_2
  • Subtask 8(15 points):无特殊限制。

对于所有数据,0x1x2<N1090\leq x_1\leq x_2<N\leq 10^90y1y2<M1090\leq y_1\leq y_2<M\leq 10^91Q1051\leq Q\leq 10^5