NOI2017 蔬菜

题目

\(n\)种蔬菜,第\(i\)种蔬菜单价是\(a_i\),数量有\(c_i\),每天有\(x_i\)份会变质。每天可以买\(m\)个单位蔬菜。有\(k\)个询问,每次问买\(p\)天蔬菜能够获得的最大价值。

解题思路

蔬菜会变质这个很不好做,我们考虑时光倒流,变成蔬菜一个一个回来,首先有一个显而易见的结论就是如果我们可以在第\(k\)天卖出\(x\)单位\(i\)蔬菜,那在\(k\)之前也一定可以,因此我们可以从后往前贪心的选贵的蔬菜,因为根据上面那个结论如果我们选了一个局部最优而不是全局最优的蔬菜,我们可以在他前面把这个补回来,这个可以用一个堆来维护,于是这样我们就可以求出在全局最优情况下一共进行了哪些卖菜操作,这个时候我们就相当于是得知了最后一天的答案,考虑怎么从\(P\)天推到第\(P-1\)天,我们肯定是选出一些菜扔掉,先求出一个\(cnt\)表示今天至少要扔多少菜,然后再维护一个大根堆表示还剩哪些买菜操作,贪心的选出\(cnt\)个最便宜的菜扔掉即可,注意这个扔菜是不受时间影响的。

猜你喜欢

转载自www.cnblogs.com/11111111234kkk/p/10744043.html
今日推荐