作业排期
某机器上需要处理n个作业,每个作业都有一个收益值p与完成期限d。每个作业均占时1个时间单位。
请你安排作业,得到最大收益。输入格式
np0 p1 ... pn (收益值非递减排练)
d0 d1 ... dn
输出格式
总收益作业序列(编号从0开始)
输入样例
690 80 50 30 20 10
1 2 1 3 4 3
输出样例
220[0, 1, 3, 4]
分析:既然每个作业占时都一样,肯定先对收益排个序(此题的数据已帮你排好),能做就做,有冲突放弃。标准的贪心,局部最优来达到全局最优。
维护一个list。list[i]=j表示在当前遍历过程中,编号为 j 的作业的期限是第 i 大的。注意在遍历过程中,list中的内容可能会不断变化,即同一下标的元素也会不断变化。
代码: