2 条题解
-
1doc LV 10 MOD @ 2014-11-02 15:47:32
对于这个题目, 因为要离散化, 所以有些c++选手会使用stl, 这会让程序变得非常慢. 希望慎用.
-
12014-11-02 14:16:10@
- 1
信息
- ID
- 1901
- 难度
- 8
- 分类
- (无)
- 标签
- (无)
- 递交数
- 512
- 已通过
- 47
- 通过率
- 9%
- 被复制
- 3
- 上传者
对于这个题目, 因为要离散化, 所以有些c++选手会使用stl, 这会让程序变得非常慢. 希望慎用.
我们发现永远不可能在交换后钱变少了,于是我们可以把所有操作按照V的大小 升序排列。如果我们要执行这一交换,必然是为了得到Vi的钱,而我们只能从\(R_i\)
~\(V_{i-1}\)
转移得到。用动态规划实现,F(i)表示得到i元钱需要的最少时间。最后我们只需要先离散,然后用线段树维护区间最值即可,时间复杂度O(NlogN)。