#P14981. [USACO26JAN1] Milk Buckets G
[USACO26JAN1] Milk Buckets G
题目描述
Bessie 向 Farmer John 发起了一个涉及牛奶桶的游戏挑战!有 个()牛奶桶排成一行。从左数第 个桶最初装有 ()加仑牛奶。
游戏分为两个阶段:
阶段 1:Farmer John 可以交换任意两个相邻的桶。他可以执行任意多次交换,但每次交换需要花费 1 枚硬币。
阶段 2:交换完成后,Farmer John 执行以下操作,直到只剩下一个桶为止:选择两个相邻的桶,其牛奶量分别为 和 ,并将这两个桶替换为一个桶,新桶中装有 加仑牛奶,放在它们原来的位置。
你的目标是确定在交换阶段中,Farmer John 必须花费的最小硬币数量,以便在所有合并完成后,最终桶中的牛奶量最大化。
输入格式
第一行包含一个整数 ():独立测试用例的数量。
接下来,对于每个测试用例,第一行包含一个整数 :牛奶桶的数量。第二行包含 个整数 ,用空格分隔:每个桶中牛奶的加仑数。
保证所有测试用例的 之和不超过 。
输出格式
对于每个测试用例,输出 Farmer John 为了最大化最终桶中的牛奶量而必须花费的最小硬币数量。
2
3
0 0 1
3
0 1 0
0
1
4
4
9 4 9 2
6
0 0 2 0 0 0
3
2 0 1
9
3 3 3 10 3 2 13 14 13
1
2
0
3
提示
对于第一个测试用例,我们在第一阶段不需要交换任何牛奶桶。在第二阶段,Farmer John 可以合并前两个桶,然后合并剩下的两个桶,最终得到 加仑的牛奶。可以证明,这个最终量是最大的。
对于第二个测试用例,我们必须在第一阶段交换前两个牛奶桶一次,才能在第二阶段得到 加仑的最终量。可以证明,如果不在第一阶段进行交换,我们无法达到 加仑的最终量。
对于第一个测试用例,Farmer John 可以在第一阶段交换第二个和第三个桶。然后,在第二阶段,Farmer John 可以执行以下操作:
- -> 合并第三和第四个桶 ->
- -> 合并第二和第三个桶 ->
- -> 合并第一和第二个桶 ->
最终的牛奶量为 ,这是可能的最大值。可以证明,即使进行更多的交换,最终量也无法超过 ,而如果交换次数更少,最终量也无法达到 。
- 输入 -: 且 ( 之和 )
- 输入 -:
- 输入 -:( 之和 )
- 输入 -:无额外约束。
翻译由 DeepSeek V3 完成