问题描述:
一部电梯只能停一层,电梯上的人都从这层下去,然后走到自己的楼层,计算停到哪层所有人的路途之和最短。
问题扩展:(1)如果下楼和上楼消耗的能量不同,求所有消耗能量之和的最小值
(2)条件增加,如果电梯可以停K层
分析:
1、可以将电梯停在每层的情况分别求总路径,然后对总路径比较,求出最小值。二重循环。
2、以其中一层(i,可以从i=1开始)为基数-这种情况下总路径这和为Sum(i)。
假设有X个人在本层,Y个人在该楼的上层,Z个人在该楼的下层。
若该层数上升(i+1),那么sum(i+1)=sum(i)+X-Y+Z,所以当X+Z<Y的时候,i+1层更加有利。
3、扩展问题分析:(1)比较容易解决,计算的时候直接乘以消耗能量即可
(2)可以将电梯分为K份,分别求出每组的最小值,将其求和。
代码如下: