A93507.舞萌基本练习

普及+/提高

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

Welcome24ever 在游玩舞萌 dx 的过程中,发现一首歌可以分成不超过 kk 段分别进行练习。

具体来说,这首歌共有 nn 个音符,每个音符有一个难度值。第 ii 个音符的难度值为 aia_i。Welcome24ever 觉得一段歌曲的音符的难度应该是尽可能变难的。因此对于音符序列的一个区间 [l,r][l, r],她认为这段区间的「不优美度」是这段区间的逆序对数。

一个区间 [l,r][l, r]逆序对数被定义为满足 li<jrl \le i < j \le rai>aja_i > a_j 的数对 (i,j)(i, j) 的个数。

Welcome24ever 希望把这首歌划分成不超过 kk 个子段,满足每个音符都至少属于一个子段,使得「不优美度最大的段」的不优美度尽可能小。

形式化地,你需要划分出 tkt \le k 个区间 [l1,r1],[l2,r2],,[lt,rt][l_1, r_1], [l_2, r_2], \dots, [l_t, r_t],满足:

  • l1=1l_1 = 1rt=nr_t = n
  • 1i<t1 \le i < tri+1=li+1r_i + 1 = l_{i+1}
  • 1it1 \le i \le tliril_i \le r_i

定义 f(l,r)f(l, r) 表示区间 [l,r][l, r] 的不优美度,目标是最小化:
maxi=1tf(li,ri)\max\limits_{i=1}^{t} f(l_i, r_i)

输入格式

本题单个测试点内有多组测试数据。第一行是一个正整数 TT,表示数据组数。对每组数据:

第一行是两个整数 n,kn,k1kn1051 \le k \le n \le 10^5),表示歌曲的音符数和最多的划分段数。
第二行有 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n109ai109-10^9 \le a_i \le 10^9),表示每个音符的难度。

数据保证单个测试点内的 nn 之和不超过 10510^5

输出格式

对每组数据,输出一行一个整数表示答案。

输入输出样例

  • 输入#1

    2
    5 2
    1 3 2 5 4
    8 2
    4 2 3 6 7 1 8 5
    

    输出#1

    1
    2
    

说明/提示

样例解释

11

n=5,k=2n=5,k=2a=[1,3,2,5,4]a=[1,3,2,5,4]

例如把它分成两段:

  • 11[1,3][1,3][1,3,2][1,3,2],逆序对是 (2,3)(2,3)(因为 a2=3>a3=2a_2=3>a_3=2),所以 f(1,3)=1f(1,3)=1
  • 22[4,5][4,5][5,4][5,4],逆序对是 (4,5)(4,5)(因为 a4=5>a5=4a_4=5>a_5=4),所以 f(4,5)=1f(4,5)=1

此时 max(f(1,3),f(4,5))=max(1,1)=1\max(f(1,3),f(4,5))=\max(1,1)=1,可以达到答案 11

22

n=8,k=2n=8,k=2a=[4,2,3,6,7,1,8,5]a=[4,2,3,6,7,1,8,5]
通过合适地分成两段,可以让「不优美度最大的段」的最小可能值为 22,所以答案是 22

首页