随笔分类 - 数据结构-可并堆
摘要:今天午睡的时候忽然想到这样一类问题:如何求一个序列(可正可负可零)的前k大(小)个子区间的和?随即想到了一个$O((n+k)(logn+logk))$的算法,思路并不难 看到区间和,首先想到的就是构造出前缀和,一般这么搞准没错~ 然后看到前k小问题,一般能想到的做法是构造出一个边权非负的有向图(显式
阅读全文
摘要:我最开始接触k短路时用的是A*算法,后来我从某位大佬那里得知A*算法的复杂度不稳定,可能会退化成平方级别的(比如,所有结点首尾相连成环) (注:A*算法不会降低时间复杂度!不用A*算法,用一个普通的优先队列照样可以做,复杂度是一样的,就是A*在一般情况下更快而已) 于是学了下用可持久化可并堆维护数据
阅读全文