编程题
### 问题描述 一个序列 $[b_1, b_2, ..., b_m]$ 若对于 $2 \le i \le m$ 满足 $b_i \le b_1$ ,则称为好序列。 现在给定 $[a_1, a_2, ..., a_n]$ ,求对于该序列的每一个后缀 $[a_k, a_{k+1}, ..., a_n]$ $(1 \le k \le n)$ 最少能划分成多少个好序列。 ### 输入格式 第一行包含一个整数 $n$ ,表示数组 $a$ 的长度。 第二行包含 $n$ 个整数 $a_1, a_2, a_3, ..., a_n$ ,两两之间以一个空格分隔。 ### 输出格式 输出 $n$ 行,第 $i$ 行输出 $k = i$ 时的答案。 ### 样例输入 ```text 6 1 1 4 5 1 4 ``` ### 样例输出 ```text 3 3 2 1 2 1 ``` ### 样例解释 当 $k = 1$ 时, 可划分为: $[[1, 1], [4], [5, 1, 4]]$ 。 当 $k = 2$ 时, 可划分为: $[[1], [4], [5, 1, 4]]$ 。 当 $k = 3$ 时, 可划分为: $[[4], [5, 1, 4]]$ 。 当 $k = 4$ 时, 可划分为: $[[5, 1, 4]]$ 。 当 $k = 5$ 时, 可划分为: $[[1], [4]]$ 。 当 $k = 6$ 时, 可划分为: $[[4]]$ 。 ### 评测数据规模 对于所有评测数据, $1 \le n \le 10^6$ , $1\le a_i \le 10^9$ 。
查看答案
赣ICP备20007335号-2