切割木板的顺序是自由的,所以每次选择两块最短的板,组合在一起,加入队列,原来两个板出队,直到队列中为空或者只剩下一个板时结束。这里使用优先队列较为方便。
#include
#include
#include
#include
#include
#define ll __int64
using namespace std;
int len[20005];
int main()
{
//...
分类:
其他好文 时间:
2014-10-01 18:42:41
阅读次数:
150
题意:有一个电梯,每一个人都想乘电梯到达自己想要到达的楼层!从a层到b层的时间是|a-b|, 乘客上下电梯的时间忽略不计!问最少需要多少的时间.... 这是一道神题啊,自己的思路不知不觉的就按照注解的思路走了,想着用优先队列模拟一下,可能还是没有模拟好吧,一直哇!但是同学的优先队列模拟过了! ...
分类:
其他好文 时间:
2014-09-29 15:31:41
阅读次数:
112
Big Christmas TreeTime Limit:3000MSMemory Limit:131072KTotal Submissions:20918Accepted:4523DescriptionChristmas is coming to KCM city. Suby the loyal ...
分类:
其他好文 时间:
2014-09-28 21:42:25
阅读次数:
220
采用优先队列把一个普通线性表改造成赫夫曼树,再进行赫夫曼编码,得到一个同时记录了明文和对应编码的密码本。使用优先队列(最小堆)构造赫夫曼树是一种高效的方法,比每次都遍历整个线性表要快很多。我在构造密码本时确保密码本数组递增排序,这样每次插入新结点时可以折半查找插入,效率较高。有序的密码本在把明文编码成密文时也可以大大提高查找效率。...
分类:
其他好文 时间:
2014-09-28 16:14:43
阅读次数:
319
template
class priority_queue
注意,priority_queue是一个模板类,它的定义形式如上;其中,它的每一个参数也是一个类,这里我们主要解释一下Compare 参数。
其中,Compare 参数是一个...
分类:
其他好文 时间:
2014-09-27 01:00:59
阅读次数:
141
点击打开链接
求顶点1到其他点的最短距离的最长距离。。
测试。。dijkstra + 优先队列
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define for0(a,b) for...
分类:
其他好文 时间:
2014-09-26 20:57:48
阅读次数:
147
最近在使用prior_queue实现图的Dijkstra算法和Prim,发现老是插入有bug,仔细研习之后突然发现有两点需要注意
1.如果优先队列里放的是自定义的类,在用重载比较符的时候要严格定义:
if (a
then ( a==b ) is false;
2.如果在不插入或者删除队列中节点的时候,却要修改某个节点中key的值,切记不可以直接修改其 key
解决方案1:全部出队,修改...
分类:
其他好文 时间:
2014-09-24 21:58:18
阅读次数:
178
http://acm.hdu.edu.cn/showproblem.php?pid=5025蛇最多只有五条,状态压缩一下,vis增加两维,表示取得钥匙的状态和蛇的状态,然后一个优先队列的bfs即可解决问题,简单题#include #include #include #include #include...
分类:
其他好文 时间:
2014-09-24 17:22:57
阅读次数:
164
/*
剪枝:四秒后状态会变得和原来一样,所以四秒后如果再经过这个点肯定不是最优的舍去
易错点:在一个是从.到.这两个点都没有被照到并且不是摄像机,也可能需要等3秒,因为后面的结果可能再这三秒中发生改变,要单独判断
*/
#include
#include
#include
#include
#include
using namespace std;
#define N 510
char s[N][...
分类:
其他好文 时间:
2014-09-24 14:00:46
阅读次数:
155
网赛的时候看了这道题,发现就是平常的那种基础搜索题。
由于加了一个特殊条件:可以一次消耗3秒或原地停留1秒。
那就不能使用简单的队列了,需要使用优先队列才行。
题意
告诉一副地图:一个起点,一个终点,若干墙,若干监视器,剩下的是空地。
起点,终点,监视器都算空地。
监视器初始值会指定一个方向,共有四个方向。
监视器每秒顺时针转动到下个方向。
监视器视野距离为2.
在监视器的位置或在监视器面向的格子是监视区域。
普通的移动一格需要消耗1秒时间。
在监视器下移动一格需要消耗3秒时间。
如果呆在原地不动,即...
分类:
其他好文 时间:
2014-09-24 11:39:36
阅读次数:
173