原文地址
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
题目翻译
翻译
都是我自己手翻的,应该比机翻好一点吧,如果有什么问题还请指教。
思路
贪心即可。能不买饮料就不买饮料,如果第 iii 天一定要买,找到第 iii 天及以前没买过饮料的店中最便宜的一家买饮料,直到超过第 iii 天的目标。如果之前所有店都买过了,就是无解。此算法的正确性可以感性理解。
这个过程可以使用小根堆来优化。发现其他题解都是优先队列,那我就手写堆吧。
代码及细节
* 考虑到极限情况下,答案 =∑Ci≤1014=\sum C_i\leq 10^{14}=∑Ci ≤1014,所以答案要开 long long。
* 手写堆不要打错了,(个人认为)比某区间数据结构还难调。