题目链接 https://www.luogu.org/problemnew/show/SP338 分析 联想到不久前做过的一道题$Full$ $Tank$,感觉可以用优先队列做,于是写了$dijsktra$(非负权图不敢用$SPFA$了) 然后发现错了,想了挺久,发现它实际上是可以找$dis$更大的 ...
分类:
其他好文 时间:
2018-09-14 20:01:11
阅读次数:
229
优先队列 优先队列是用来维护一组元素集合的数据结构 一个最小优先队列支持下列操作: + 把key插入键i的值 + 删除并返回堆的最小值 可以用堆来实现优先队列 关于建堆的操作,之前的文章已经介绍过了 rust pub struct MinHeap { size: usize, array: Vec, ...
分类:
其他好文 时间:
2018-09-12 01:05:29
阅读次数:
207
现在来了解A*算法是什么 现在来解决A*求K短路问题 在一个有权图中,从起点到终点最短的路径成为最短路,第2短的路成为次短路,第3短的路成为第3短路,依此类推,第k短的路成为第k短路。那么,第k短路怎么求呢? 对于第k短路,可以想到的一个比较朴素的算法就是广度优先搜索,使用优先队列从源点s进行广搜, ...
分类:
编程语言 时间:
2018-09-11 01:10:28
阅读次数:
228
队列的特点是先进先出。通常都把队列比喻成排队买东西,大家都很守秩序,先排队的人就先买东西。但是优先队列有所不同,它不遵循先进先出的规则,而是根据队列中元素的优先权,优先权最大的先被取出。这就很像堆的特征:总是移除优先级最高的根节点。 重点:优先级队列,是要看优先级的,谁的优先级更高,谁就先得到权限。 ...
分类:
其他好文 时间:
2018-09-09 23:09:24
阅读次数:
217
【传送门】https://nanti.jisuanke.com/t/31447 【题目大意】:有一个二分图,问能不能找到它的一个子图,使得这个子图中所有点的度数在区间【L,R】之内。 【题解】首先我们分这几种情况讨论: (1)如果集合U,V中存在某个点,它的度数小于L,那么肯定就不满足题意,直接输出 ...
分类:
其他好文 时间:
2018-09-09 11:45:11
阅读次数:
134
数据结构与算法分析 优先队列 模型 Insert(插入) == Enqueue(入队) DeleteMin(删除最小者) == Dequeue(出队) 基本实现 简单链表:在表头插入,并遍历该链表以删除最小元 时间代价昂贵 二叉查找树 二叉查找树支持许多不需要的操作,实现麻烦,不值得 最合适:二叉堆 ...
分类:
编程语言 时间:
2018-09-08 16:00:13
阅读次数:
200
以优先队列为例,从cppreference查得,它的模板为 所以我们要定义一个Compare类实现less的功能,在观察less类的内容,https://en.cppreference.com/w/cpp/utility/functional/less 实现非常简单,只要对我们自定义的类实现oper ...
分类:
其他好文 时间:
2018-09-07 11:12:09
阅读次数:
174
时间限制:1秒 空间限制:81920K 时间限制:1秒 空间限制:81920K 产品经理(PM)有很多好的idea,而这些idea需要程序员实现。现在有N个PM,在某个时间会想出一个 idea,每个 idea 有提出时间、所需时间和优先等级。对于一个PM来说,最想实现的idea首先考虑优先等级高的, ...
分类:
其他好文 时间:
2018-09-07 00:00:06
阅读次数:
505
模板(各种类型通用): template<class 模板名> 注意:若要使用模板,在每个自定义函数前都必须加上此定义。 排序(algorithm头文件): sort(头指针l,尾指针r):(void)将左闭右开区间[l,r)中的元素从小到大排序。时间复杂度O(nlogn)。 sort(头指针l,尾 ...
分类:
编程语言 时间:
2018-09-05 23:50:25
阅读次数:
190
题意:给一串只有'(' , ')' , '?' 的括号序列,每个?可以变成)或者(,代价分别为bi和ai,求变成合法序列的最小代价 思路:学习自最近的网络赛&&51nod贪心专题视频的思想,“反悔”,一般在获取收益有限制的情况下使用 先按某种“优”的策略贪心,如果不满足限制条件了,取一个修改后代价尽 ...
分类:
其他好文 时间:
2018-09-05 23:46:00
阅读次数:
180