题意简述
有一些进程,每个进程有两个属性:id和per。id表示进程编号,per表示每per的时刻就会被调用一遍。如果有多个进程在同一时刻被调用,先调用进程编号小的。求先调用的k个进程。
思路框架
优先队列。定义小于号,每次取最小的,然后把它下一次被调用的时间放回优先队列。
具体思路
优先队列中,如果ab的时间,然后判断a的id>b的id。
对于一个进程(id,Time,per),它的下一次调用显然珂以被表示为(id,Time+per,per)。我们每次从优先队列中取最优先的(id,Time,per),将它弹出队列,然后把(id,Time+per,per)入队列,即珂
代码
1 |
|