【CSP模拟】merchant 题解
19.10.18
题目描述
有 个物品,第 个物品有两个属性 , ,表示它在时刻 的价值为 。
当前处于时刻 ,你可以选择不超过 个物品,使得存在某个整数时刻 , ,你选择的 所有物品的总价值大于等于 。
给出 ,求 的最小值。
核心思路
题目显然就是
这个式子非常难维护。
考虑是否具有单调性,显然,这个必然是先减后增的。直接二分答案。
考虑如何二分答案,只需要先检查 的位置是否合法,就可以直接忽略掉递减的部分了。
考虑如何check,题目规模要求 地检查。这里有一个玄学操作nth_element
,复杂度玄学,可以卡过随机数据。
考试的时候没想清楚这一点,想着有一定的概率二分可以过。然后看到题目有一个subtask是 ,就自己特判了一下 的情况,就比别人多了12分。
代码略