
堆
逐梦起航-带梦飞翔
为了更加长远的快乐!
展开
-
poj2442 Sequence(堆)
题意给定m个长度为n的序列,从每个序列中任取一个数求和,可以构成n^m个和,求其中最小的n个和。 题解堆这题就像同余方程求解一样,可以分步求解。对于第i行和第i+1行的解是一个1*n的矩阵,我们将其替代第i行和第i+1行,放回原矩阵中。这样一来问题就简化成2个长度为n的序列,分别任取一个数求和,求最小的n个。这两个序列a,b内部先分别有小到大的排序。最小解无疑是(a[1],...原创 2018-08-14 20:45:05 · 383 阅读 · 0 评论 -
poj3635 Full Tank(优先队列bfs)
题目poj3635 Full Tank题解优先队列bfs设置(x,h)表示到达城市x,还有h的油时的状态,并用d[x][h]记录油钱。bfs时有两个转移方向:(y,h-c),(y,h+1)。(其中y表示下一个点,c表示边权)因为涉及迭代,所以每个状态可能会被多次访问。因为我们用优先队列维护油钱递增,所以每个点第一次访问时一定是最少油钱到达这个点。 ...原创 2018-09-15 23:05:38 · 670 阅读 · 0 评论 -
洛谷2243 电路维修(双端队列bfs)
题目洛谷2243 电路维修题解双端队列bfs建一张图,每个顶点为图中的点,每个点可以往4个方向走。如果需要改变则边权为1,否则边权为0。bfs时建立一个双端队列q。如果走边权1,则把该点塞到q尾;否则放在q头。这么做的目的是想维护bfs的“两段性”和“单调性”,只适用于边权+1\0的bfs。...原创 2018-09-15 23:06:46 · 681 阅读 · 0 评论