EOJ Monthly 2018.10

C. 痛苦的 01 矩阵

单点时限: 3.0 sec

内存限制: 512 MB

现有一个 n×n 的 01 矩阵 M

定义 cost(i,j) 为:把第 i 行和第 j 列全部变成 1 最少需要改动多少个元素。

定义矩阵的痛苦值 pain(M) 为:

pain(M)=(i=1nj=1n(cost(i,j))2)mod(109+7)

要求求出初始矩阵的痛苦值和每次修改操作之后的痛苦值。

输入格式

第一行三个正整数 n,k,q (2n2105, 1kmin(n2,2105), 0q2105)。k 表示这个矩阵中有 k 个 1。q 表示修改操作次数。

接下来 k 行,每行两个正整数 xi, yi (1xi,yin),表示有一个 1 在第 xi 行,第 yi 列。保证所有 (xi,yi) 各不相同。

接下来 q 行,每行两个正整数 ui, vi (1ui,vin),表示修改第 ui 行,第 vi 列。如果该位置原先为 0,则改为 1;如果该位置原先为 1,则改为 0。

输出格式

输出 q+1 行,依次为所有修改发生前的痛苦值,和每次修改操作后的痛苦值。

样例

Input
3 4 9
1 1
1 2
2 3
3 1
3 3
1 2
1 3
2 2
2 2
2 1
3 1
1 1
2 3
Output
73
48
75
52
29
52
33
52
77
104

提示

(110 001 100)

九个位置的 cost 分别为 2, 3, 2, 2, 3, 4, 3, 3, 3。所以痛苦值是 5×32+3×22+1×42=73

经过第一次修改后,矩阵变为:

(110 001 101)