问题:有 n个订单,每个订单有两个属性,数量 q吨和交付时间d,其中每生产一吨铁需要1个单位时间。要求拒绝的订单数最少。
思路:对于两个订单(qa,da),(qb,db),如果qa>qb,da<db时,订单(qa,da)是可以接受的,则订单(qb,db)也是可以接受的。将订单根据交付时间从小到大排列,使用优先级队列,如果加上当前订单的时间后小于交付时间,则将当前订单放入集合中(优先级队列),否则为了保证当前集合中的所有订单总共的时间最小,将当前订单所需要的时间与集合中的最大值作比较,如果比集合中的最大值大,则不交换,否则将当前订单与集合中的最大值交换。
具体参考:
https://github.com/wuli2496/OJ/tree/master/UVa/1153%20Keep%20The%20Customer%20Satisfied