luogu#P9317. [EGOI2022] SubsetMex / 子集 mex

[EGOI2022] SubsetMex / 子集 mex

题目背景

Day 1 Problem A.

题面译自 EGOI2022 subsetmex

题目描述

一个可重集是元素可以重复出现的集合。例如,{0,0,1,2,2,5,5,5,8}\{0,0,1,2,2,5,5,5,8\} 是一个可重集。

给定一个可重集 SS,值域为 N\N,和一个目标自然数 nnnSn\notin S),你的目标是通过重复进行若干次以下的操作,使得 nSn\in S

  1. 选择一个(可以为空的)子集 TST\subseteq S,其中 TT 不包含重复元素。
  2. SS 中删除 TT 中的元素。(重复元素只删除一个。)
  3. mex(T)\operatorname{mex}(T) 插入 SS,其中 mex(T)\operatorname{mex}(T) 是最小的不在 TT 中的自然数。mex\operatorname{mex} 意味着“最小不包含”的值。

你需要求出最少的能使得 nSn\in S 的操作次数。

由于 S|S| 可能很大,它将以一个大小为 nn 的列表 (f0,fn1)(f_0,\ldots f_{n-1}) 的形式给出,其中 fif_i 代表 iiSS 中的出现次数。(请回忆 nn 是我们想要插入 SS 的元素。)

输入格式

第一行一个整数 tt——数据组数。之后每两行描述一组数据:

  • 每组数据的第一行一个整数 nn,表示要插入 SS 的元素。
  • 每组数据的第二行 nn 个整数 f0,f1,,fn1f_0,f_1,\ldots,f_{n-1},按照上述方式描述了集合 SS

输出格式

对于每组数据,输出一行一个整数,表示最少操作次数。

2
4
0 3 0 3
5
4 1 0 2 0
4
10

提示

样例 11 解释

初始 S={1,1,1,3,3,3}S=\{1,1,1,3,3,3\},目标是使得 4S4\in S。我们如下操作:

  1. T=T=\varnothing,则 S={0,1,1,1,3,3,3}S=\{0,1,1,1,3,3,3\}
  2. T={0,1,3}T=\{0,1,3\},则 S={1,1,2,3,3}S=\{1,1,2,3,3\}
  3. T={1}T=\{1\},则 S={0,1,2,3,3}S=\{0,1,2,3,3\}
  4. T={0,1,2,3}T=\{0,1,2,3\},则 S={3,4}S=\{3,4\}

数据范围

对于全部数据,1t2001\le t\le 2001n501\le n\le 500fi10160\le f_i\le 10^{16}

  • 子任务一(55 分):n2n\le 2
  • 子任务二(1717 分):n20n\le 20
  • 子任务三(77 分):fi=0f_i=0
  • 子任务四(99 分):fi1f_i\le 1
  • 子任务五(2020 分):fi2×103f_i\le 2\times 10^3
  • 子任务六(99 分):f01016f_0\le 10^{16}j0,fj=0\forall j\ne 0,f_j=0
  • 子任务七(1010 分):i,fi1016\exists i,f_i\le 10^{16}ji,fj=0\forall j\ne i,f_j=0
  • 子任务八(2323 分):无特殊限制。