队列
九野的博客
这个作者很懒,什么都没留下…
展开
-
HDU 3530 单调队列
/* 题意:给出一个序列,求最长的连续子序列,使得 M<=Max-Min<=K n <= 10^5 一开始我把Max-Min合起来弄,搞不出 然后看了别人说用两个单调队列,一个存单调递减,一个存单调递增 想了下细节,1y,有点惊奇.. 我知道单调队列可以快速知道i及之前的最大/小值,这道题分开两个队列来做很好!! Max原创 2013-11-01 19:17:10 · 1551 阅读 · 0 评论 -
CSU 1350 To Add Which? 给序列增加最少的值使得相邻数差<=D 优先队列+贪心
题目链接:import java.io.PrintWriter;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Comparator;import java.util.Iterator;import java.ut原创 2015-01-24 19:08:12 · 1405 阅读 · 0 评论 -
UvaLive 4254 Processor 优先队列
题目链接:点击打开链接除了Integer, String等,其他(即对象)都是引用。。(就是地址,想要和C一样的效果要新建一个对象)import java.io.PrintWriter;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java原创 2015-01-03 15:52:30 · 1179 阅读 · 0 评论 -
HDU 4284 状压dp+spfa
题意:给定n个点 m条无向边 d元。下面m行表示每条边 uv 以及花费 w下面top下面top行num c d 表示点标为num的城市 工资为c 健康证价格为d起点在第一城市。目标是经过给定的top个城市,当到达该城市时,必须马上购买该城市的健康证并打工赚钱(每个城市只打工1次)问能否收集到所有的健康证思路:由于top很小,所以状压dpdp[i][tmp原创 2014-05-09 22:53:25 · 1321 阅读 · 0 评论 -
HDU 4122 Alice's mooncake shop 优先队列
#include #include #include #include #include #include #include using namespace std;typedef long long ll;template inline bool rd(T &ret) { char c; int sgn; if(c=getchar(),c==EOF) return 0;原创 2014-11-09 16:46:20 · 1165 阅读 · 0 评论 -
HDU 4123 Bob’s Race 树的直径+单调队列
题意:给定n个点的带边权树Q个询问。下面n-1行给出树下面Q行每行一个数字表示询问。首先求出dp[N] :dp[i]表示i点距离树上最远点的距离询问u, 表示求出 dp 数组中最长的连续序列使得序列中最大值-最小值 思路:求dp数组就是求个树的直径然后dfs一下。对于每个询问,可以用一个单调队列维护一下。O(n)的回答。#include #includ原创 2014-11-09 14:18:19 · 1786 阅读 · 0 评论 -
Codeforces 446B DZY Loves Modification 矩阵行列分开考虑 优先队列+构造
题目链接:点击打开链接题意:给定n行m列的矩阵 k次操作,一个常数pans = 0;对于每次操作可以任选一行或一列, 则ans += 这行(列)的数字和然后这行(列)上的每个数字都-=p问最大的ans思路:首先我们设最终选了 行 i 次,则列选了 k-i 次那么假设我们先全部选行,然后选列,则每次选列时,要-= i*p这样最后是 -= i原创 2014-07-14 12:46:52 · 1602 阅读 · 0 评论 -
Codeforces 15D Map 单调队列+构造
题目链接:http://codeforces.com/problemset/problem/15/D题意:给定n*m的矩阵,每个点都是一个地基,上面的数字表示该地基的高度。再给定a*b的小房子,要把a*b放在这个矩阵上,显然建房子要保证选取的地基高度一致。若不一致,则要把选取的a*b大的矩阵中所有地基都挖低使得和其中一块最矮的地基高度一样,花费是挖的高度和操作:选取当前花费最小原创 2014-06-26 00:20:10 · 1819 阅读 · 0 评论 -
HDU 3410 && POJ 3776 Passing the Message 单调队列
题意:给定n长的数组(下标从1-n)(n个人的身高,身高各不相同问:对于第i个人,他能看到的左边最矮的人下标。(如果这个最矮的人被挡住了,则这个值为0)还有右边最高的人下标,同理若被挡住了则这个值为0输出n行,每个人左右2边的下标。单调队列,对于 front - rear 的队列(注意出队都是在rear,入队也是在rear)当加入元素x,若这队列是单调递增的,显然q.fro原创 2014-04-29 23:48:08 · 1886 阅读 · 0 评论 -
优先队列 小的先出队
#include#includeusing namespace std;priority_queue, greater > q;原创 2013-12-26 13:31:27 · 2621 阅读 · 0 评论 -
POJ 2823 单调队列
题意:n个数的序列, k大小的区间如题目中的图依次选择区间,得到每个区间的最值 第一行输出所有区间的最小值第二行输出所有区间的最大值 #include#define N 1000005int Q1[N], Q2[N];//Q1递增int front1, front2;int rear1, rear2;int sum[N];in原创 2013-11-01 20:29:26 · 1426 阅读 · 0 评论 -
HDU 5380 Travel with candy 单调队列
链接题解链接:http://www.cygmasot.com/index.php/2015/08/16/hdu_5380题意:n C一条数轴上有n+1个加油站,起点在0,终点在n。车的油箱容量为C下面n个数字表示每个加油站距离起点的距离。下面n+1行表示每个加油站买进和卖出一单位油的价格。油可以买也可以卖。问开到终点的最小花费。思路:把油箱保持装满,然后维护一个原创 2015-08-16 15:53:01 · 2534 阅读 · 0 评论