我在想这个:
市场有n
个产品和m
个卖家。对于每个卖家k
,我们有三联(i,j,p)
:这意味着卖家以i, i+1, .., j
的价格销售编号为p
的产品。
目标:
查找市场上每种产品(1..n)的最低价格。您可以假定产品的价格为无穷大,而且不存在卖方。
示例:
n=4, m=3
和3个三元组是(1,3,4), (2,3,2), (3,4,1)
。因此,产品(1..4)
的最低值为:(4, 2, 1, 1)
。
O(nm)
解决方案很简单。我们可以在O(n+ mlogn)
中使用二进制索引树进行范围更新和点查询。
有人可以在O(nlogn)
答案 0 :(得分:0)
你可以在O(M *(logN + logM))中进行预处理,然后使用Segment树回答O(logN)中的每个查询,这里描述 Algorithm Gym :: Data structures - Codeforces.
对于你的问题: