随笔分类 - 堆
摘要:题目 分析 发现,当子段[l,r]被取了出来,那么[l 1,r]、[l,r+1]一定也被取了出来。 那么,首先将[1,n]放入大顶堆,每次将堆顶的子段[l,r]取出来,因为它是堆顶,所以一定是最大的子段,输出它,并将[l+1,r]和[l,r 1]放进堆中。 一共就只用做k次就可以了。
阅读全文
摘要:题目 分析 首先预处理出每个点的优先级,当有一个人进入时,一定会走到优先级最大的空房间中。 把所有空的房间扔到一个堆中,按优先级大小维护这个堆。 答案怎么求就不说了,很容易想到,就只讲操作吧。 对于第一种操作,我们就将一个一个扔进优先级最大的房间(即堆顶),因为堆顶的房间有人,所以将堆顶的房间踢出堆
阅读全文