CFCF2159D1.Inverse Minimum Partition (Easy Version)
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
这是该问题的简单版本。不同版本之间的区别在于,这一版本只要求你找到 f(a)。只有当你解决了所有版本的问题后,才能进行攻击。
对于某个长度为 k 的正整数序列 b,序列的代价定义如下∗:
cost(b)=⌈min(b1,b2,…,bk)bk⌉
假设你将一个序列 c 划分成一个或多个子序列,拼接后能够还原出 c。例如,当序列 c 为 [3,1,4,1,5] 时,以下几种划分是合法的:[[3,1],[4,1,5]],[[3],[1,4,1],[5]],[[3,1,4,1,5]]。而 [[3,1],[1,5]] 和 [[3,4,1],[1,5]] 并不是合法的划分方式。
对于一个正整数序列 c 的某种划分,其总总代价定义为所有子序列代价之和。我们定义 f(c) 为能够将序列 c 划分后的最小总代价。
给定一个长度为 n 的正整数序列 a,请你计算 f(a) 的值。
∗给定实数 x,⌈x⌉ 表示不小于 x 的最小整数。例如,⌈3.14⌉ 的值为 4。
输入格式
每组测试数据包含多组用例。第一行包含测试用例数 t(1≤t≤104)。每组用例的描述如下:
每组用例的第一行包含一个整数 n(1≤n≤4×105)。
第二行包含 a1,a2,…,an(1≤ai≤1018)。
保证所有用例的 n 之和不超过 4×105。
输出格式
对于每个测试用例,输出一行答案。
输入输出样例
输入#1
4 5 3 1 4 1 5 10 9 2 6 5 3 5 8 9 7 9 8 1 2 3 4 5 6 7 8 2 1 1000000000000000000
输出#1
2 4 5 2
说明/提示
对于第一个测试用例,划分 [[3,1,4,1],[5]] 可得到总代价 1+1=2。
对于第二个测试用例,划分 [[9,2,6,5,3],[5,8,9,7,9]] 可得到总代价 2+2=4。
对于第三个测试用例,划分 [[1],[2,3,4],[5,6,7,8]] 可得到总代价 1+2+2=5。
对于第四个测试用例,划分 [[1],[1000000000000000000]] 可得到总代价 1+1=2。