luogu#P11421. [清华集训 2024] 最大匹配 2

[清华集训 2024] 最大匹配 2

题目描述

给定长度为 nn 的整数序列 a1,a2,,ana_1,a_2,\cdots,a_n 和长度为 nn0101 序列 b1,b2,,bnb_1, b_2, \cdots , b_n

对于 1i<jn1 \le i < j \le n,称二元组 (i,j)(i, j) 构成匹配当且仅当 bi=0b_i = 0bj=1b_j = 1

定义极大匹配方案 SmaxS_{\max} 为满足以下所有条件的二元组集合:

  • 对于任意 (u,v)Smax(u, v) \in S_{\max}1u<vn1 \le u < v \le n(u,v)(u, v) 构成匹配;
  • 每一个整数 1in1 \le i \le nSmaxS_{\max} 中出现至多一次;
  • 在满足以上条件的前提下,满足 au=ava_u = a_v 的二元组 (u,v)(u, v) 数量最多,即 (u,v)Smax[au=av]\displaystyle \sum_{(u,v)\in S_{\max}}[a_u=a_v] 最大;
  • 在满足以上条件的前提下,Smax|S_{\max}| 最大。

给定 mm 次修改,每次修改给出 x,p,qx, p, q,表示将 (ax,bx)(a_x, b_x) 修改为 (p,q)(p, q)

你需要对于每个 1im+11 \le i \le m + 1 求出:按输入顺序依次进行前 (i1)(i - 1) 次操作后,极大匹配方案 SmaxS_{\max} 的大小 Smax|S_{\max}|

输入格式

从标准输入读入数据。

输入的第一行两个整数 n,mn, m,表示序列长度和操作次数。

第二行 nn 个整数 a1,a2,,ana_1, a_2, \cdots , a_n 描述序列 aa

第三行 nn 个整数 b1,b2,,bnb_1, b_2, \cdots , b_n 描述序列 bb

接下来 mm 行每行三个整数 x,p,qx, p, q,描述一次修改。

输出格式

输出到标准输出。

输出 (m+1)(m + 1) 行,每行一个整数,第 ii 行表示按输入顺序依次进行前 (i1)(i - 1) 次操作后 Smax|S_{\max}| 的值。

5 5
1 2 1 1 2
0 0 0 0 0
2 2 1
4 2 0
4 2 1
2 2 0
1 1 1
0
1
1
2
1
1
10 10
2 1 2 2 2 2 1 2 2 2
1 1 0 0 0 0 1 0 0 0
3 2 0
5 1 0
9 1 1
4 2 1
8 1 1
2 1 0
1 2 1
8 2 0
1 1 1
9 1 0
1
1
1
2
3
3
4
4
3
3
2

提示

【样例 11 解释】

  • 初始情况,由于所有的 bib_i 都等于 00,因此没有二元组构成匹配,极大匹配方案的大小为 00,故第一行输出 00
  • 进行第一次修改后,b2=1b_2 = 1,极大匹配方案为 {(1,2)}\{(1, 2)\},故第二行输出 11
  • 进行前三次修改后,序列 aa[1,2,1,2,2][1,2,1,2,2],序列 bb[0,1,0,1,0][0,1,0,1,0]。极大匹配方案为 {(1,2),(3,4)}\{(1, 2), (3, 4)\},故第四行输出 22。注意此时 (4,5)(4, 5)b4=1b_4 = 1b5=0b_5 = 0,并不构成匹配。

子任务

对于所有测试数据,

  • 1n2×1051 \le n \le 2 × 10^50m2×1050 \le m \le 2 × 10^5
  • 对于 1in1 \le i \le n1ain1 \le a_i \le n0bi10 \le b_i \le 1
  • 每次修改中有 1xn1 \le x \le n1pn1 \le p \le n0q10 \le q \le 1

  • Subtask 1(10%10\%):n100n \le 100m=0m = 0
  • Subtask 2(15%15\%):n2×103n \le 2 \times 10^3m=0m = 0
  • Subtask 3(20%20\%):m=0m = 0
  • Subtask 4(15%15\%):ai,p2a_i, p \le 2
  • Subtask 5(20%20\%):n,m105n, m \le 10^5
  • Subtask 6(20%20\%):无特殊限制。