我不知道如何解决这个问题:http://acm.sgu.ru/problem.php?contest=0&problem=311
请帮我解决这个问题
我知道使用分段树可以解决这个问题,但我不知道如何解决
发布于 2011-03-07 02:58:34
发布于 2011-02-28 20:35:31
每行循环:
发布于 2011-03-10 01:59:33
我不得不说,我不相信片段树是这个问题的最佳解决方案。它们是否是“最好的”数据结构似乎取决于到达与购买请求的比率,因为每次你做一次销售,在删除一个段之后,将有相当多的工作来更新你的段树。
如果您将库存存储为链表,并且每个节点包含以特定单位成本出售的商品数量,会发生什么情况?这将使插入和移除库存的成本大大降低。要检查是否可以进行销售,您必须迭代while循环,累积成本和数量,直到达到目标或超过成本。这里的优点是,如果您进行了销售,那么您停止的节点现在是您想要开始下一次搜索的库存的最低成本。如果您正在使用垃圾收集语言,您只需将列表头部的引用更改为您停止的节点,这将使代码简洁。
在有单位成本的新库存到达时,插入的最坏情况是O(n),其中n是您拥有的到达数量。我认为在现实世界中,这不会是一个糟糕的系统,因为一个真正的企业会期望大量的销售(高兴)到非销售(不愉快)。这种方法表现不佳的地方是,如果有很多人想买几乎所有的库存,但只是有点缺钱来完成它。
https://stackoverflow.com/questions/5141806
复制相似问题