【BZOJ】1229 [USACO2008 Nov]toy 玩具

【算法】三分+贪心

【题解】

数据范围小的版本:餐巾计划

这题不是使用最小费用流的下凸函数,因为这题是要满足最大流,那么这题到底在三分什么?

三分的这个函数,其实是总费用随卖出玩具量变化而变化的函数,此时的流量一直是满流的。可以想象一下,当卖出玩具的流量在总流量中占比小时,许多都得洗,花费巨大;继续卖出玩具直至到达一个平衡点时,总费用刚好最低;卖出过多时,冗余了很多,花费巨大。因此这是一个下凸函数。

为什么要三分玩具卖出量?因为可以根据玩具卖出量贪心求解,不用慢速的网络流。三分得到卖出玩具量,将这个玩具量先贪心使用,然后将用过的放进快洗队列,超过天数的从快洗队列对头拿进慢洗队列。玩具用完后贪心取慢洗队列,若慢洗空了就在快洗中取最近刚用的。

posted @ 2017-04-27 10:01  ONION_CYC  阅读(319)  评论(0编辑  收藏  举报