1013.石子合并简化版
Time Limit: 1000 MS Memory Limit: 32768 KB
Total Submission(s): 986 Accepted Submission(s): 218
Description
有n堆石子,每次从中抽取两堆进行合并,合并后的石子数记做权,并把合并后的石子堆当做新的一堆放回,重新随机抽取两堆石子,重复上面的操作,直到所有石子合并成一堆,则每次合并的和的总和是多少?
Input
第一行:石子的堆数n(1 <= n <= 10000)。
第二行:每堆石子的石子数a[i](1 <= a[i] <= 10000)。
Output
每次合并的权的最大总和(由于最后的结果较大,请对最终的结果mod1000000007)
Sample Input
3
6 7 10
Sample Output
40
Hint
先合并7和10,得到17,再将17与6合并得到23
Source
SDNU ACM-ICPC 2010复赛(2009级)
思路:
10 + 7 = 17,17 + 6 = 23,10 + 17 + 23 = 40。
优先队列less(降序排列)之后队顶是10(因为题目说合并最大的),所以10和第二大的合并之后是17,17这一堆再和最后一堆合并之后就是23。注意每次合并之后的堆会当做新的一堆重新放回,所以正确顺序应该是10 + 7 + 10 + 7 + 6 = 40。