站外题,水题解
在一维数轴上有n只精灵以及m个能量球。精灵们都因能量用尽而无法移动。精灵可以使用能量球来补充能量。每个能量球都需要花费一定的金币来开启,当一个能量球被开启后,它可以在短时间内给任意数量的精灵提供能量。由于精灵们的能量都用尽了,你只能通过花费金币来将它们传送到指定位置,并且你只能向右传送每个精灵(即传送到坐标更大的位置)。将某个精灵从坐标x传送到坐标y(y>x)需要花费的金币数量为y−x(也就是说,所需的金币为两点的距离)。
现在你需要开启一些能量球,并将每个精灵都传送到某个开启的能量球的坐标上,从而让这n只精灵都可以进行能量补充。请问你所需花费的金币数最少是多少?注意,多个精灵可以使用同一个能量球。
数据保证每个精灵右边都至少一个能量球。即不存在无解。
1<=n,m<=1000
我的解法dp