站外题求助
  • 板块灌水区
  • 楼主Notfind
  • 当前回复14
  • 已保存回复14
  • 发布时间2024/3/31 18:57
  • 上次更新2024/3/31 21:13:18
查看原帖
站外题求助
386436
Notfind楼主2024/3/31 18:57

K14151 石子 (stone)

题目描述

小可可面前有n堆石子,第i堆石子有ai个石子。小可可想要在开始选择一堆石子,然后从它开始,每次合并这堆石子左边的那堆石子或者右边的那堆石子。合并两堆石子个数为 x, y 的石子堆需要花x+y的力气,并且会合并成一堆x+y个石子的石子堆。              

小可可想花费最小的力气从最初选择的那堆石子开始,将所有石子都合并完。小可可想知道,如果他选择编号在 [l, r] 里面的每一堆石子作为最初的石子,那么他将n堆石子合并成一堆花的最小力气是多少。

小可可不想太为难你,所以他保证所有的ai是随机的。

输入格式 第一行输入一行三个整数 n, l, r,石子堆数和最开始选择的那堆石子的编号区间。 

第二行输入 n 个整数 a1, a2, · · · , an,表示每堆石子的石子个数。

输出格式 输出一行r−l+1个整数,第i个整数表示小可可选择编号为l−1+i 的石子堆作为最开始的那堆石子时,将所有石子都合并完花的最少力气。

输入输出样例

输入样例1:

4 1 4            

5 1 3 1                        

    

输出样例1:

25 19 19 19

说明

样例说明:

对于第 1 堆石子作为初始的石子堆,最优(也是唯一)的合并策略是先合并第 2 堆, 再合并第 3 堆,随后合并第 4 堆,花费力气为 25;   

对于第 2 堆石子作为初始的石子堆,最优的合并策略是先合并第 3 堆,再合并第 4 堆,随后合并第 1 堆,花费力气为 19;           

对于第 3 堆石子作为初始的石子堆,最优的合并策略是先合并第 2 堆,再合并第 4 堆,随后合并第 1 堆,花费力气为 19;                                      

对于第 4 堆石子作为初始的石子堆,最优(也是唯一)的合并策略是先合并第 3 堆,再合并第 2 堆,随后合并第 1 堆,花费力气为 19。                                 

数据规模与约定                            

对于 20% 的数据,满足 n ≤ 10;

对于 40% 的数据,满足 n ≤ 300;

对于 60% 的数据,满足 n ≤ 5000;

对于另外 20% 的数据,满足 n ≤ 10^5, r − l + 1 ≤ 50;

对于100%的数据,有1 ≤ l ≤ r ≤ n ≤ 10^5,1 ≤ ai ≤ 10^8。

保证ai 随机。

随机方式为:先选择一个所有 ai 的上界 v,对于每个 ai,它在 [1, v] 中的所有整数中等概率随机选取一个。

2024/3/31 18:57
加载中...