给出长度为 $n$ 的序列 $A$,保证 $1\le a_i\le m$。对每个 $1\le i\le m$,询问保证 $1\sim i$ 的连续子序列的最小长度。
设 $R(i,l)$ 表示序列 $A$ 中以 $a_l$ 为左端点且包含 $1\sim i$ 的最短序列的右端点。
考虑 $R(i,1\sim n)$ 到 $R(i+1,1\sim n)$ 的转移。不妨设 $i+1$ 的位置分别为 $p_1,p_2\cdots p_k$,同时假设 $p_0=0$。
于是对 $p_j \lt l\le p_{j+1}$,有 $R(i+1,l)=\max\left(R(i,l),p_{j+1}\right)$。特别的对 $p_k \lt l\le n$,有 $R(i+1,l)=\inf$。
于是该题转化为需要维护一个支持区间 $\text{max}$ 操作且能维护答案 $R(i,l)-l+1$ 的最小值的数据结构。但区间 $\text{max}$ 操作难以维护答案。
不难发现 $R(i,1\sim n)$ 单调递增,于是对区间 $(p_j,p_{j+1}]$ 作 $\max$ 操作等价于找到区间左半 $R$ 值不超过 $p_{j+1}$ 的部分进行区间 $\text{set}$ 操作。
最终可以 $O(n\log n)$ 维护答案。