
算法浅谈
s.h夏.福
一个信息学蒟蒻
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
浅谈对顶堆
一、前言 在做题时遇到了求序列中第k大的值的问题(或是求中位数的问题),面对这种问题,我们通常会想:那我们只要先把整个数组快排一遍不就可以了吗。但是,如果碰到了要求你动态维护第k大的值的话,时间复杂度会大到惊人!所以我们需要一种更好的方法去处理,而这种方法就是对顶堆。 二、正文 我们都知道,堆可以在短时间内将数据维护成单调递增或单调递减的序列,但在它的实现方式——优先队列中,我们没办法进行单点查询。那我们应该怎么办呢? 仔细回想一下优先队列的相关知识,我们可以知道,优先队列虽然不支持任意点访问,但我们可以仅原创 2020-11-02 22:17:26 · 638 阅读 · 0 评论 -
浅谈状态压缩
一、前言 在做动规的时候有时会遇到一些有复杂状态的题目,这些状态如果不压缩,而只用数组的每一维来存储每一个状态,少则三至四维,多的话,甚至能达到九维或十维,这样不仅会耗费大量空间,且时间上也很难过。(本人的惨痛经历) 所以,我们不能傻乎乎地用这种笨方法,那我们应该怎么办呢? 话不多说,正文来了 二、正文 1、总述 一些题每一个点的状态只有两种,例如,一个地点是否走过,可以用“0”来表示未经过,用“1”来表示已经过,那么假设有5个“点”,第一和第三个“点”已经过,那我们可以用“10100”来表示,这个二进制数原创 2020-08-18 14:52:26 · 754 阅读 · 0 评论