#P13610. [NWRRC 2022] Mex and Cards
[NWRRC 2022] Mex and Cards
Description
Mike 喜欢玩纸牌。他的牌堆中每张牌上都写有一个从 到 的整数。最初,牌堆中有 张牌的点数为 。
今天 Mike 正在学习 的概念。一个整数集合的 mex 是集合中不存在的最小非负整数。例如,$\operatorname{mex}(\{4, 1, 4, 12, 0, 7, 0, 0, 5\}) = 2$。
Mike 会把所有的牌分成若干个非空的牌堆。每张牌必须且只能属于一个牌堆。然后他会计算每个牌堆中所有牌的点数的 mex,并将所有牌堆的 mex 求和。Mike 想要找到一种分堆方式,使得这些 mex 之和最大。
此外,牌堆还会发生 次修改:有时会往牌堆中加入一张新牌,有时会从牌堆中移除一张牌。Mike 想要在每次修改后(包括最初未修改时)都找到一种分堆方式,使得 mex 之和最大。
请你在每次修改后(包括最初未修改时)输出最大可能的 mex 之和。
Input Format
第一行包含一个整数 ,表示牌的点数范围()。
第二行包含 个整数 ,表示初始时点数为 的牌的数量()。
第三行包含一个整数 ,表示牌堆的修改次数()。
接下来的 行,每行包含两个整数 和 ,描述第 次修改(;)。如果 ,表示加入一张点数为 的新牌;如果 ,表示移除一张点数为 的牌。
保证对于每次 的操作,操作前牌堆中至少有一张点数为 的牌。
Output Format
输出 个整数,依次表示初始状态和每次修改后,所有牌分堆后最大可能的 mex 之和。
5
2 1 3 0 2
6
1 0
1 1
2 4
1 3
2 1
2 1
4
5
7
7
9
7
3
Hint
对于示例测试的初始牌堆,一种最优分堆方式是:将点数为 和 的牌分为一堆,将点数为 的牌分为另一堆,将点数为 的牌单独分为一堆。此时各堆的 mex 分别为 $\operatorname{mex}(\{0, 2\}) + \operatorname{mex}(\{0, 1, 2, 2, 4\}) + \operatorname{mex}(\{4\}) = 1 + 3 + 0 = 4$。
由 ChatGPT 4.1 翻译
京公网安备 11011102002149号