标签:

4 篇文章

[POJ2431]Expedition[贪心,堆]
题面 一开始想到一个错误策略: 每次在当前油量能走到的范围内找油最多的加油站...后面发现有可能会要在范围内多次加油才可能走到终点, 需要根据油量从大到小依次选择加油站, 于是容易想到用一个大根堆来维护所有可以走到的油站, 直到不能再走就不断依次选择油站来继续往前走. 如果没有油站可以选就走不到终点. 注意输入的是到终点的距离. [collapse…
[POJ3190]Stall Reservations[贪心]
题面 首先要把牛按照开始时间升序排序, 不然安排一头牛时这头牛开始时间之前我们都管不了了, 可能造成浪费一段正好可以安排后面一头开始时间更早的牛的空档. 而按开始时间排序后就能线性的安排每头牛, 保证安排到每一头牛时这头牛的开始时间之前已经排满, 只要考虑这头牛结束后的安排. 事实上许多含上界下界的问题都不能同时考虑上下界, 必须先保证一端线性变化…
[POJ3784]Running Median[堆]
题面 题目要求动态维护中位数, 每当序列长为奇数时输出(也就是输出第i/2+1小的数). 设当前序列长为i, 我们把整个序列按升序分为第1~i/2小, 第i/2+1小两部分. 资瓷动态插入并维持有序的数据结构容易想到堆. 对左半边和右半边分别开一个大根堆left 小根堆right, 那么right.top()即为中位数. 每次加入一个数x, 若比当…