AT_arc180_e [ARC180E] LIS and Inversion

题目描述

给定一个长度为 $N$ 的整数序列 $A=(A_1,A_2,\cdots,A_N)$。这里,保证对于每个 $i$,有 $0\leq A_i < i$。 对于 $(1,2,\cdots,N)$ 的一个排列 $P=(P_1,P_2,\cdots,P_N)$,定义其**分数**和**代价**如下: - $P$ 的分数为 $P$ 的最长递增子序列的长度。 - $P$ 的代价为满足以下条件的整数 $i$($1\leq i\leq N$)的个数: - 满足 $jP_i$ 的整数 $j$ 的个数小于 $A_i$。 对于每个 $k=1,2,\cdots,N$,请解决下列问题: - 求分数至少为 $k$ 的排列 $P$ 的最小代价。

输入格式

输入以如下格式从标准输入读入: > $N$ $A_1$ $A_2$ $\cdots$ $A_N$

输出格式

请按顺序输出 $k=1,2,\cdots,N$ 的答案。

说明/提示

### 限制条件 - $1\leq N\leq 250000$ - $0\leq A_i < i$ - 输入的所有值均为整数 ### 样例解释 1 对于每个 $k$,满足条件的 $P$ 如下: - $k=1$:取 $P=(4,2,1,3)$,此时 $P$ 的分数为 $2$,代价为 $0$。 - $k=2$:取 $P=(4,3,1,2)$,此时 $P$ 的分数为 $2$,代价为 $0$。 - $k=3$:取 $P=(4,1,2,3)$,此时 $P$ 的分数为 $3$,代价为 $1$。 - $k=4$:取 $P=(1,2,3,4)$,此时 $P$ 的分数为 $4$,代价为 $3$。 由 ChatGPT 4.1 翻译