数据类型与算法
SuperSASS
一个写的博客让大家肯定都看不懂的oier qwq……
展开
-
[CodeVs 4373] 窗口 ——单调队列
CodeVs 4373 以这道题来了解单调队列 首先,在我们暴力的时候,会发现很多在前一步的时候已经比较过了,找窗长为m第i个位置时,则实际上前m-1到m个已经在第i-1个位置上比较过了 因此采用单调队列 即把前面所找到的最大值记录下来,并用队列存储。 当往后面找的时候便与队列里的数比较,若大于等于最后一个数,肯定这最后一个数不是最大值,便tail--使队尾出队,并不断这样操作直到小于队原创 2017-10-21 08:32:35 · 240 阅读 · 0 评论 -
[CodeVs 1063] 合并果子 ——小根堆
CodeVs 1063/* 首先理解小(大)根堆的概念 即将数据以树的结构处理 小根堆: 每个父节点都比其叶子小 大根堆: 每个父节点都比其叶子大 这样,保证了这组数据较为有序,且根节点毕竟为最值 然后取最值,并删除这个数【处理方法为覆盖为最后一个数】,再次维护一下根节点,不断重复,即实现了堆排序 然后以CodeVs 1063 「合并果子」这道经典题来看这种最小堆的实际用途 分析: 基础思路肯原创 2017-10-21 16:02:55 · 304 阅读 · 0 评论 -
[Ybt 1349] 最优布线问题 ——最小生成树[Kruskal]
Kruskal……原创 2017-10-21 17:14:44 · 478 阅读 · 0 评论 -
[BZOJ 2763] 飞行路线 ——分层图
BZOJ 2763 飞行路线 以本题讲解分层图的用法: 在解决一些图论问题的时候,如果有一些修改的操作,比如如此题中允许免费k次这样的操作,显然在一层图中跑最短路会出问题,因此我们想到一种分层图的概念 如果我们将免费k次,抽象成建立k成图,到下一层便是免费一次【边权为0】。这样再跑一遍最短路便可以解决问题 #include using namespace std; #define原创 2018-01-13 09:03:55 · 443 阅读 · 0 评论