2012-0053
从 Trac 迁移的文章
这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。
原文章内容如下:
假设当前时间为T,对于两个工作Si,Ti和Sj,Tj,试比较先i后j的价值A,和先j后i的价值B
{{{
A = T*Si + (T-Ti)*Sj = T*Si + T*Sj - Ti * Sj
B = T*Sj + (T-Tj)*Si = T*Si + T*Sj - Tj * Si
A - B = Tj * Si - Ti * Sj
}}}
用A-B排序即得先完成那些任务会有更优的价值, 但是由于T的限制, 直接贪心取会导致后面可能出现有任务无法取到,所以只需要再做一个简单的背包DP即可。
By FJYsmall
假设当前时间为T,对于两个工作Si,Ti和Sj,Tj,试比较先i后j的价值A,和先j后i的价值B
A = T*Si + (T-Ti)*Sj = T*Si + T*Sj - Ti * Sj
B = T*Sj + (T-Tj)*Si = T*Si + T*Sj - Tj * Si
A - B = Tj * Si - Ti * Sj
用A-B排序即得先完成那些任务会有更优的价值, 但是由于T的限制, 直接贪心取会导致后面可能出现有任务无法取到,所以只需要再做一个简单的背包DP即可。
By FJYsmall