
问题描述
在一款名为”大石头的搬运工“的游戏中,玩家需要操作一排n堆石头,进行n -1轮游戏。
每一轮,玩家可以选择一堆石头,并将其移动到任意位置。
在n-1轮移动结束时,要求将所有的石头移动到一起(即所有石头的位置相同)即为成功。
移动的费用为石头的重量乘以移动的距离。例如,如果一堆重量为2的石头从
位置3移动到位置5,那么费用为2×(5-3)=4。
请计算出所有合法方案中,将所有石头移动到一起的最小费用。可能有多堆石头在同一个位置上,但是一轮只能选择移动其中一堆。
输入格式
第一行一个整数n,表示石头的数量。
接下来n行,每行两个整数wi和pi,分别表示第i个石头的重量和初始位置。
输出格式
输出一个整数,表示最小的总移动费用。
样例输入
3
23
31
15
我的答案:错的
一、信息
- 问题描述: 在一款游戏中,需要操作n堆石头进行n-1轮游戏。每轮选择一堆石头移动到任意位置。目标是将所有石头移动到同一位置,费用为石头重量乘以移动距离。
本文详细介绍了在一款名为'大石头的搬运工'的游戏中,如何计算将所有石头移动到一起的最小费用。首先,对问题进行分析,包括输入输出格式、数据范围和算法设计。接着,提出一种解决方案,通过对石头按位置排序,计算前缀和和后缀和来确定最小费用。在代码实现过程中,可能会遇到整数溢出、排序效率和前缀和计算等挑战。文章还提供了正确答案的完整信息和分析。
订阅专栏 解锁全文
1098





