[JZOJ P1327] [DP]订货

时间:2017-01-20 19:20:49   收藏:0   阅读:217

 

啊这是一道省选题,怪不得我不会写,最重要的是战胜自己的内心要坚信你会写出来,恩。

用f[i][j]来表示前i个月还有j吨货的费用,就是依靠 上一月的费用+上一月的货的存费+订需要的+订(j-k)的费用

f[i][j]=min(f[i-1][k]+k*m+d[i]*(u[i]+(j-k)));  ( 0<j,k<s)  ->      f[i][j]=min(f[i-1][k]-d[i]*k+k*m)+d[i]*(u[i]+j);

由于k的范围是从0到s 而s大的不止一点,所以一步步循环就会超时,因此需要用队列来优化,跟 超级教主 相似,都是单调递减,队首为最优 之后一步步把队尾踢出去换最优

 

原文:http://www.cnblogs.com/Kaike/p/6323447.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!