暂时没在poj上找到对应的题目,不过思想非常简单。
一堆任务,每个任务有最晚完成时间di,和需要持续的时间ti。
真实安排这些任务时,每个任务有真是的开始时间si和结束时间fi。称一个任务的延迟时间为fi-di。
目的:找一个安排任务的方案,使所有任务的总的延迟最小。
贪心算法:最早截止时间优先。
# include<iostream>
# include<algorithm>
using namespace std;
struct NODE
{
int i,t,d; //i标记是第几个任务
};
bool cmp(NODE a, NODE b)
{
return a.d<b.d;
}
int main()
{
NODE node[3];
/*
node[0].i=1;
node[0].t=1;
node[0].d=2;
node[1].i=2;
node[1].t=2;
node[1].d=4;
node[2].i=3;
node[2].t=3;
node[2].d=6;
*/
node[0].i=1;
node[0].t=2;
node[0].d=6;
node[1].i=2;
node[1].t