3084 车库

Task
N个停车位,m辆车。每个时刻来一辆或者走一辆。车到达时,有多个停车位选编号最小的,如果没有停车位,就等待。车走时,若有多辆车等待,先到先得空车位。
每辆车花的代价=停车位i的价格v*车j的重量w。求所有车的总代价。
N<=100,m<=200,v<=100,w<=10000

Solution
此题与3081排队大同小异。
考察了堆和队列的应用。
如果当前来了一辆车,那么它取的空车位是确定的,即当前空车位中编号最小的。对于最值信息的维护,我们可以使用堆。
如果确定每个车位的优先级,放入堆中,每次来都弹出一个最小值,就可以保证要求。

等待的车符合先进先出的特点,可以用队列存下。

你可能感兴趣的:(——堆,——队列)