QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 512 MB Total points: 100

# 5035. foo~

Statistics

题目描述

我们定义一个序列的权值为 $ \max($前缀最大值个数,后缀最大值个数$) $。 给定一个长度为 $ n $ 的首尾相接的排列 $ p $,你需要将其分成 $ k $ 段非空序列,使得每个数都恰好在一段里,且 $ k $ 段序列的权值之和尽可能大。

输入格式

第一行两个正整数 $ n, k $,表示排列长度和划分段数。 第二行输入 $ n $ 个正整数,表示排列 $ p $。

输出格式

一行一个整数,表示最大权值和。

输入样例1

6 1
4 1 6 2 5 3

输出样例1

4

样例解释1

切开 $ 1 $ 到 $ 6 $ 的边,变为序列 $\{6,2,5,3,4,1\}$,该序列的后缀最大值有 $ \{6, 5, 4, 1\} $ 四个数。

输入样例2

6 2
4 1 6 2 5 3

输出样例2

5

样例解释2

切开 $ 1 $ 到 $ 6 $,$ 2 $ 到 $ 5 $ 的边,分成序列 $\{6,2\}$ 和 $ \{5,3,4,1\}$,权值分别为 $ 2 $ 和 $ 3 $,权值之和为 $ 5 $。

输入样例3

18 3
4 6 1 12 15 14 17 13 9 10 5 18 2 8 16 11 3 7

输出样例3

12

数据范围

对于所有数据,满足 $ 1 \le k \le n \le 6 \times 10^5, 1 \le k \le 30 $,保证输入的是一个 $ \{1, 2, \cdots, n\} $ 的排列。

子任务编号 $n$ $k$ 特殊性质 分值
$1$ $\le 30$ - - $10$
$2$ - $k=1$ $10$
$3$ $\le 2\,000$ - 数据随机 $20$
$4$ $\le 5\,000$ - $20$
$5$ $\le 5 \times 10^4$ $20$
$6$ - $20$

数据随机:输入的排列在 $ n! $ 种排列中随机生成。