题意是要做n个作业,每个作业给出花的时间和deadline,超出deadline一天多扣一费,让你输出最小的超出费用,并输出写作业的顺序。
易想到将用1<<n-1 表示n个作业的所有状态,然后递推dp,从小状态到大状态,01表示的状压有个好处就是易判断一个状态是不是一个打状态的子状态。输出顺序可以想到一个状态最优值更新时肯定也更新了当前做的作业,所以用一个状态的数组存一下,最后写一个递归输出即可。代码稍后帖。
题意是要做n个作业,每个作业给出花的时间和deadline,超出deadline一天多扣一费,让你输出最小的超出费用,并输出写作业的顺序。
易想到将用1<<n-1 表示n个作业的所有状态,然后递推dp,从小状态到大状态,01表示的状压有个好处就是易判断一个状态是不是一个打状态的子状态。输出顺序可以想到一个状态最优值更新时肯定也更新了当前做的作业,所以用一个状态的数组存一下,最后写一个递归输出即可。代码稍后帖。