给定一个长度为 n 的序列 a。你需要将该序列划分为 m 个不相交的连续区间,记为 [l1,r1],[l2,r2],…,[lm,rm],其中必须满足对于任意 j 满足 rj+1=lj+1。定义区间函数为
f(lj,rj)= max(alj,alj+1,......,arj)
得到的新序列为
b={f(l1,r1),f(l2,r2),…,f(lm,rm)}
要求使得 b1+b2+…+bm 最大化,求该最大值。
小苯有一个长度为n的序列。他将a分为了m个不相交的连续段,每个段内的最大值构成了一个新的序列b。
现在小笨给定了你n序列,他希望最大化序列b的总和,请你帮他算一算b数组的总和最大可以达到多少吧
更正式的,小苯限定你可以将序列n划分为了m个区间
[l1,r1],[l2,r2],...,[lm,rm],需要满足:
定义f(lj,rj)=max(alj,alj+1,...arj)则
b={f(l1,r1),f(l2,r2),..,f(lm,rm)}
给定n,m,a,求b1+b2+...+bm的最大值。
本题有多组测试数据。
输入的第一行包含一个正整数T(1≤T≤100),表示数据组数。
接下来包含T组数据,每组数据的格式如下:
第一行两个正整数n,m(1≤m≤n≤2×105)分别表示序列a的长度和需要划分的区间段数。
第二行n个正整数a(1≤a≤109)表示序列a (保证同一个测试文件中的所有测试数据里,n的总和不超过2×105。)
对于每组测试数据:
在单独的一行输出一个整数,表示最优划分下,b的最大总和。
输入
2
5 2
1 6 2 5 4
4 2
1 1 1 1
输出
11
2