E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
单调队列
DP——斜率优化专题(pku3709,hdu3669)
这是我第一次 “挣了八景” 的做斜率优化的题,以前多数时候都是撇几眼~~还有那个四边形不等式,不过该干的事早晚是得干啊~~ 实际上斜率优化一点都不难,关键是理解了斜率不等式以及
单调队列
队尾的更新。
·
2015-11-12 11:25
HDU
UESTC 880 生日礼物 --
单调队列
优化DP
定义dp[i][j]表示第i天手中有j股股票时,获得的最多钱数。 转移方程有: 1.当天不买也不卖: dp[i][j]=dp[i-1][j]; 2.当天买了j-k股: dp[i][j]=max(dp[r][k]+(j-k)*Ap[i]); (r<i-w) 3.当天卖了k-j股: dp[i][j]=max(dp[r][k]+(k-j)*Bp[i]); (r<i-w) 直接转移复
·
2015-11-12 10:59
优化
二模 (7) day2
2.
单调队列
优化会更快,不过我不会。。
·
2015-11-12 10:13
a
HDU 4122 Alice's mooncake shop
单调队列
,裸的!!
·
2015-11-12 08:18
HDU
HDOJ-4193-Non-negative Partial Sums【
单调队列
】
HDOJ-4193-Non-negativePartialSums【
单调队列
】ProblemDescriptionYouaregivenasequenceofnnumbersa0,…,an-1.Acyclicshiftbykpositions
loy_184548
·
2015-11-11 20:00
hdoj
4193
poj2823_
单调队列
简单入门
题目链接:http://poj.org/problem?id=2823 #include<iostream> #include<cstdio> #define M 1000001 using namespace std; int n,k; int a[M]; int q[M]; int p[M]; void get_min() { i
·
2015-11-11 19:31
poj
dp优化
入口 A(fzu 1894) 普通的
单调队列
,trick是进队判断的符号选取(>=wa , >ac).
·
2015-11-11 18:46
优化
HDU 3530
单调队列
DP,开始想错了,WA了好多次。 后来才发现错在哪了。。 我们先枚举子串的结尾,并维护2个队列(单增,单减)。 如果2个队列的队头的差别大于k,则较小的队头值的位置肯定不满足要求。
·
2015-11-11 18:23
HDU
HDU 3401
这题是道较为经典的
单调队列
优化的题,总共有三种状态,买,卖及其他。
·
2015-11-11 18:22
HDU
【HAOI 2007】理想正方形
昨晚眼看宿舍就要熄灯锁门了,赶紧赶紧,终于把这个程序搞出来了…… 就是
单调队列
。
·
2015-11-11 17:59
2007
poj 2754 Similarity of necklaces 2 转换成多重背包,
单调队列
优化/ 二进制优化
贴个官方解题报告 Similarity of necklaces 2 这个问题是一个012背包问题。我们知道01背包只要逆向线性检索,无限背包只要正向检索。012背包就是说,每个物品有一个数量上限。这个问题可以用log方法,也存在线性方法,需要维护一个递增/递减序列。 我们先把所有的Table都放成下限,接下来我们可以算出它距离总和为0还需要增加多少。对于1<=i<
·
2015-11-11 17:22
二进制
HDU 5289
pid=5289 给一个数列,求有多少区间,使得这些区间内的最大值减最小值小于k
单调队列
的功能:O(1) 插入,删除,最大or最小 方法:枚举区间的后界,找前界(一定可以找到一个后界使得这个后界的前面所有满足要求
·
2015-11-11 17:17
HDU
POJ 3250 Bad Hair Day --单调栈(
单调队列
?)
维护一个单调栈,保持从大到小的顺序,每次加入一个元素都将其推到尽可能栈底,知道碰到一个比他大的,然后res+=tail,说明这个cow的头可以被前面tail个cow看到。如果中间出现一个超级高的,自然会推到栈底,即此元素以前的cow看不到此元素后面cow的头,即res不会加此元素前面的个数,说明是正确的。 注意要用long long 或者 __int64类型。 刚开始看着80000不大的样子,其
·
2015-11-11 16:02
AIR
FZU1894 志愿者选拔 --
单调队列
做法:维护一个单调递减序列,只需输出序列中的第一个元素即可。 对于命令我们可以进行不同的处理: 如果是Q命令,则判断当前队列中是否仍有元素,如果没有则输出-1,如果有则直接输出队首。 如果是G命令,则对last加1,之后对于队列中所有超出范围的前端元素进行出队操作。(该元素在原序列中的位置>=last) 如果是C命令,则将该元素加入队列中,并和队尾元素比较,维护队列的单调性。 这里
·
2015-11-11 16:01
队列
POJ 2823 Sliding Window 再探
单调队列
重新刷这个经典题,感觉跟以前不一样了,变得更加容易理解了,不讲解了,看代码。注意:要用C++提交,用G++会超时。。 代码: #include <iostream> #include <cstdio> #include <cstring> using namespace std; #define N 1000007 int a[N],m
·
2015-11-11 16:00
window
2014-2015学习计划
nbsp; 等待学习: 25 1: 高级数据结构(17) 线段树,并查集,后缀数组,树状数组,串的模式匹配(KMP),字典树(Trie),左偏树(可合并堆),
单调队列
·
2015-11-11 16:50
学习
cf319b Psychos in a Line(
单调队列
贪心)
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> #include<cmath> using namespace std; #define MAX
·
2015-11-11 16:03
OS
Vijos 1617 超级教主(
单调队列
DP)
好久没写了,
单调队列
。
·
2015-11-11 15:03
OS
HDU 3507 Print Article(DP+斜率优化)
斜率优化也是建立在
单调队列
的基础上的,以上3个博客讲的很详细。把方程写出来,推导公式才是最主要的问题。。。 代码参考题解。 以后再遇到这样的问题慢慢理解吧。
·
2015-11-11 15:28
print
POJ 2823 Sliding Window(
单调队列
)
题目链接 貌似POJ挂了,交题 一直RE。。。我去别的OJ交AC了。当做模版了,查了好几遍,还以为模版敲错了呢。 1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 #define N 1000005 5 int p[N],que[6*N]; 6 int
·
2015-11-11 15:28
window
HDU 4374 One hundred layer(DP+
单调队列
优化)
认真学习一下
单调队列
优化,看了很多博客+题解,其实原理也不难理解。
·
2015-11-11 15:27
HDU
BZOJ 1010 [HNOI2008]玩具装箱toy(
单调队列
优化DP)
思路:
单调队列
维护斜率。 #include <iostream> #include <stdio.
·
2015-11-11 14:19
2008
BZOJ 1911 [Apio2010]特别行动队(
单调队列
优化DP)
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1911 题意:给定一个数列,将其分成若干段,若某段的和为x则这段的价值为a*x*x+b*x+c。求一种分法使得总价值最大? 思路:设p(x)=a*x*x+b*x+c,s[i]表示前i项和,f[i]=max(f[j]+p(s[]-s[j])),那么对于两个j1,j2,若j1<j2,j
·
2015-11-11 14:18
api
HDU 3507 Print Article(
单调队列
)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3507 题意:给出一个数列C,一个数字M,将数列分成若干段,每段的代价为(设这段的数字为k个): 求一种分法使得总代价最小? 思路:dp[i]=min(dp[j]+sqr(sum[i]-sum[j])+M)。对于两个j1,j2,设j1<j2,若j2比j1优,那么可得:(dp[j1]+sq
·
2015-11-11 14:17
print
POJ 3709 K-Anonymous Sequence(
单调队列
)
题目链接:http://poj.org/problem?id=3709 题意:给定一个不下降数列,一个K,将数列分成若干段,每段的数字个数不小于K,每段的代价是这段内每个数字减去这段中最小数字之和。求一种分法使得总代价最小? 思路:dp[i]=min(dp[j]+sum[i]-sum[j]-(i-j)*a[j+1])。那么对于两个j1,j2,若j1<j2但是j2比j1更优,那么可得:(d
·
2015-11-11 14:16
sequence
HDU 3415 Max Sum of Max-K-sub-sequence(
单调队列
)
思路:维护一个
单调队列
,使得队头元素位置作为数列的开始位置总是最优的。那么如何保持这一特性呢?那么对于当前的i,可能是当前或者以后的最优区间头,所以需要插入。
·
2015-11-11 14:15
sequence
hdu 4193 Non-negative Partial Sums
简单思路:
单调队列
+前缀和,枚举每一个可能的以i为首的数列,用
单调队列
找出区间[i,i+n-1
·
2015-11-11 14:31
part
ACM学习历程—HDU 5289 Assignment(线段树 || RMQ ||
单调队列
)
Problem Description Tom owns a company and he is the boss. There are n staffs which are numbered from 1 to n in this company, and every staff has a ability. Now, Tom is going to assign a special tas
·
2015-11-11 13:44
sign
CSU_BMW正式组队纪念赛出题+部分解题报告
事情太多,只出了两个水题,水了两个的朋友别忘了感谢我~~ A:搞两个双端队列,一个是最大数
单调队列
,一个是最小数
单调队列
,一遍扫过去,随时把答案更新为两个队列较短那个(当较短那个比答案长的时
·
2015-11-11 12:54
su
POJ 1821 Fence ★(
单调队列
优化DP)
题目大意:有一道线性篱笆由N个连续的木板组成。有K个工人,你要叫他们给木板涂色。每个工人有3个参数:L 表示 这个工人可以涂的最大木板数目,S表示这个工人站在哪一块木板,P表示这个工人每涂一个木板可以得到的钱。要注意的是,工人i可以选择不涂任何木板,否则,他的涂色区域必须是连续的一段,并且S[i]必须包含在内。 最后还有,每块木板只能被涂一次。 状态方程比较容易想:dp[i][j]表
·
2015-11-11 12:21
poj
POJ 1821 Fence ★(
单调队列
优化DP)
题目大意:有一道线性篱笆由N个连续的木板组成。有K个工人,你要叫他们给木板涂色。每个工人有3个参数:L 表示 这个工人可以涂的最大木板数目,S表示这个工人站在哪一块木板,P表示这个工人每涂一个木板可以得到的钱。要注意的是,工人i可以选择不涂任何木板,否则,他的涂色区域必须是连续的一段,并且S[i]必须包含在内。 最后还有,每块木板只能被涂一次。 状态方程比较容易想:dp[i][j]表
·
2015-11-11 12:20
poj
单调栈 &
单调队列
【专辑@AbandonZHANG】
单调栈 or
单调队列
,是指序列中的元素严格递增 or 递减。可以解决一些区间上基于比较的一些题目,下面用一些经典的题目中来具体讨论.
·
2015-11-11 12:16
队列
单调栈 &
单调队列
【专辑@AbandonZHANG】
单调栈 or
单调队列
,是指序列中的元素严格递增 or 递减。可以解决一些区间上基于比较的一些题目,下面用一些经典的题目中来具体讨论.
·
2015-11-11 12:16
队列
poj 2823 Sliding Windows
单调队列
维护最值
题意 一个序列,求其所有长度为k的子序列最大最小值 解法
单调队列
维护最大最小。平摊时间复杂度到O(1) 这题T了几次,因为C++,G++编译器不同的缘故。
·
2015-11-11 11:19
windows
hdu 3530 SubSequence TwoPoint
单调队列
维护最值
题意 一个序列 a_1,a_2,..,a_n, 求最长子序列,满足 low <= max{ai}-min{ai} <= high. 解题思路 首先考虑区间 [i,j], 我们可以通过固定右边界,来实现区间的滑动.以求解最佳值. 我们首先观察题目要求 low <= max{a_i,a_j}-min{a_i,a_j} <= high. 假
·
2015-11-11 11:19
sequence
单调队列
-hdu-3415-Max Sum of Max-K-sub-sequence
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3415 题目大意: 给n个数凑成环状,求某一区间,使得该区间长度不超过k,且总和最大。 解题思路: 区间总和,很容易想到保存前缀和,区间【i,j】的和即为sum[j]-sum[i]. 对于每一个以j结束的区间,求出最小的i,(i>=j-k),也即使得sum[j]-sum[i]最大。
·
2015-11-11 10:25
sequence
单调队列
-hdu-4193-Non-negative Partial Sums
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4193 题目大意: 给n个数,a0,a1,...an,求ai,ai+1,...an,a1,a2,...ai-1这样的排列种数,使得所有的前k(1<=k<=n)个的和都大于等于0; 解题思路: 求前缀和,加倍序列。 要满足前k个和都>=0,只需最小值>=0,所以用单
·
2015-11-11 10:12
part
POJ 2948 Martian Mining(DP)这是POJ第200道,居然没发现
应该可以
单调队列
优化,我直接暴力水过了。。 1 #include <cstdio> 2 #include <cst
·
2015-11-11 10:12
poj
HDU3507 print artical
考虑用
单调队列
。 令dp[i]=g,dp[j]+M+sum[i]^2+sum[j]^2=y,sum[j]=y,2*
·
2015-11-11 08:13
print
HDU3530 子序列
n<=100000 分析:维护两个
单调队列
,一个递增的,维护最小值,一个递减的,维护最大值。
·
2015-11-11 08:12
HDU
多重背包O(N*V)算法详解(使用
单调队列
)
多重背包O(N*V)算法详解(使用
单调队列
) 多重背包问题: 有N种物品和容量为V的背包,若第i种物品,容量为v[i],价值为w[i],共有n[i]件。
·
2015-11-11 07:53
算法
[
单调队列
] UVA 10534 Wavio Sequence
单调队列
,Staginner的分析; 关键在于正确性和最优性的证明: 正确性:通过
单调队列
的维护,不会得到比实际最长串更大的长度; 最优性:通过
单调队列
的维护,能得到不小于最长串的长度; 实际存在的最长串在出现之后
·
2015-11-11 07:38
sequence
COJ 1170 A Simple Problem
GDKOI 2003 又一道很类似的题(河床)使用的是动态规划,因为数据范围较小(复杂度为O(nk)),这里10^6*10^6肯定超时(确实TLE了); 这里使用一次扫描,加上
单调队列
,将复杂度降为O
·
2015-11-11 07:12
simple
用
单调队列
求解最大子矩形
考虑这样一个问题:$n\times m$的平面上有k个点(坐标都是整数),求一个面积最大的边平行于坐标轴的矩形,使得其内部不包含任何一个给出的点(但是可以在边界上)。就比如说下面这幅图: 红色的点是给出的点,那么黑色框框表示的这个矩形就是要求的最大子矩形啦。 最暴力的做法:提前预处理出一个二维部分和,然后枚举左上角的顶点和右下角的顶点每次判断是否合法并用面积更新答案就可以了
·
2015-11-11 05:30
队列
单调队列
-Hdu-4122-Alice's mooncake shop
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4122 题目意思: 一家月饼店,有n个订单,从2001年1月1日0时开始24小时营业开m个小时,且每个时间点做一个月斌的花费不一样,每个订单由时间(年月日时)定月饼数量组成。店主在每个整时点都可以做月饼,并且做月饼的时间可以忽略。每个月饼有保质期t,保存每个月饼每小时需花费s。求完成所有订单,最
·
2015-11-11 04:14
HDU
SMS(DP+
单调队列
)
单调队列
优化了一下,写的有点搓,不管怎样过了。。。两个
单调队列
,存两个东西,预处理一个标记数组存。。。
·
2015-11-11 04:19
sms
URAL 1203. Scientific Conference(瞎搞)
然后想想
单调队列
,二分什么的。。。不好往上加,直接搞了标记数组flag,暴力从大到小,遍历寻找,然后就过了。。。这算是优化吗,瞎搞。。。
·
2015-11-11 04:11
conf
CF #38 Lets Go Rolling!
用DP,枚举第m+1段中的第m段,然后dp[i] =min{ dp[j] + cost(i, j) },转移的复杂度是O(n),状态的复杂度是O(n),总复杂度是O(n^2),不过用上类似
单调队列
优化的多重背包问题
·
2015-11-11 04:08
Go
HDU3706 Second My Problem First
看似一道数论题,是道比较明显的
单调队列
题。
·
2015-11-11 04:07
first
POJ2823 Sliding Window
单调队列
,顾名思义是指队列内的元素是有序的,队头为当前的最大值(单调递减队列)或最小值(单调递增序列),以单调递减队列为例来看队列的入队和出队操作:1、入队:如果当前元素要进队,把当前元素和队尾元素比较
·
2015-11-11 03:09
window
上一页
32
33
34
35
36
37
38
39
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他