题库练习 Yet Another MEX Problem
← 上一题 下一题 →

A16630 | Yet Another MEX Problem

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

我们定义一个由 $m$ 个非负整数组成的数组 $b$ 的“权值”为满足 $b_i > \operatorname{mex}(b)$ 的下标 $i$ 的个数,这里 $1\le i\le m$。其中,$\operatorname{mex}(b)$ 表示集合 $b$ 的“最小未出现非负整数(MEX)$^{\text{∗}}$”。

现在,给定一个由 $n$ 个非负整数组成的数组 $a$。对于其子数组$^{\text{†}}$ $[a_l, a_{l+1}, \ldots, a_r]$,我们记这个子数组的权值为 $w(l,r)$。

对于每个 $1\le i\le n$,你需要找出所有以第 $i$ 个元素结尾的子数组中最大的权值。即,要求对于每个 $1\le i\le n$,计算 $\max\limits_{1\le l\le i} w(l, i)$。

$^{\text{∗}}$ 集合 $b=b_1, b_2, \ldots, b_m$ 的最小未出现非负整数(MEX)定义为最小的在 $b$ 中没有出现的非负整数 $x$。

$^{\text{†}}$ 如果数组 $c$ 可以通过从数组 $a$ 的开头和末尾各自删除若干(可以是零个,也可以是全部)元素得到,则 $c$ 是 $a$ 的一个子数组。

输入格式

每组测试包含多组数据。第一行为测试用例组数 $t$($1 \le t \le 10^4$)。接下来是每组测试用例的描述。

每组测试用例的第一行是一个整数 $n$($1\le n \le 3\cdot 10^5$)——数组 $a$ 的长度。

第二行为 $n$ 个整数 $a_1 , a_2 , \ldots , a_n$($0\le a_i\le n$)——数组 $a$ 的元素。

保证所有测试用例中 $n$ 的总和不超过 $3\cdot 10^5$。

输出格式

对于每组测试用例,输出 $n$ 个整数,第 $i$ 个整数表示所有以第 $i$ 个元素结尾的 $a$ 的子数组中的最大权值,即 $\max\limits_{1\le l\le i}w(l,i)$。

输入输出样例

输入 #1
6
1
0
5
2 0 3 0 1
6
0 1 2 3 5 4
7
0 2 2 0 4 1 3
8
2 1 0 3 0 2 1 3
15
0 1 9 1 0 2 5 3 7 0 4 15 2 0 1
输出 #1
0 
1 1 2 2 1 
0 1 2 3 4 5 
0 1 2 2 3 2 3 
1 2 0 1 1 2 2 3 
0 1 2 3 1 1 2 3 4 4 5 6 7 7 3
C++ 编辑器
输入
输出