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
单调队列
单调队列
-首尾相连数组的最大子数组和
题目描述:给定一个由N个整数元素组成的数组arr,数组中有正数也有负数,这个数组不是一般的数组,其首尾是相连的。数组中一个或多个连续元素可以组成一个子数组,其中存在这样的子数组arr[i],…arr[n-1],arr[0],…,arr[j],现在请你这个ACM_Lover用一个最高效的方法帮忙找出所有连续子数组和的最大值(如果数组中的元素全部为负数,则最大和为0,即一个也没有选)。输入:输入包含多
gaotong2055
·
2013-07-26 16:00
【专题】
单调队列
/斜率优化DP
一、
单调队列
志愿者选拔 O(n)structSTU{ charname[7]; intrp; }; intque[2111111]; intidx[2111111]; intmain() { intT
cyendra
·
2013-07-25 11:00
MUTC8 E- One hundred layer
单调队列
dp
OnehundredlayerTimeLimit:2000/1000MS(Java/Others) MemoryLimit:65536/65536K(Java/Others)TotalSubmission(s):1257 AcceptedSubmission(s):467ProblemDescriptionNowthereisagamecalledthenewmandown100thf
cyendra
·
2013-07-25 10:00
MUTC7 C - Dragon Ball
单调队列
dp
DragonBallTimeLimit:3000/1500MS(Java/Others) MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):1680 AcceptedSubmission(s):614ProblemDescriptionSeanhasgotaTreasuremapwhichshowswhenandwheret
cyendra
·
2013-07-24 11:00
HDU3415:Max Sum of Max-K-sub-sequence(
单调队列
)
ProblemDescriptionGivenacirclesequenceA[1],A[2],A[3]......A[n].CirclesequencemeanstheleftneighbourofA[1]isA[n],andtherightneighbourofA[n]isA[1].NowyourjobistocalculatethemaxsumofaMax-K-sub-sequence.Ma
libin56842
·
2013-07-22 14:00
队列
HDU
POJ2823 线段树OR
单调队列
题目描述: SlidingWindowTimeLimit: 12000MS MemoryLimit: 65536KTotalSubmissions: 16559 Accepted: 4745CaseTimeLimit: 5000MSDescriptionAnarrayofsize n ≤106 isgiventoyou.Thereisaslidingwindowofsize k whichi
a342500329a
·
2013-07-20 16:00
hdu 2191 多重背包基础题以及(
单调队列
O(vm))的用法
#include #include #defineINF1000000000 intmax(inta,intb) { returna>b?a:b; } intf[111]; intc[111],w[111],d[111]; intmain() { intT; scanf("%d",&T); while(T--) { intn,m,i,j,k; scanf("%d%d",&m,&n); for(i=
a601025382s
·
2013-07-19 11:00
单调队列
多重背包
hdu3507斜率优化dp
:dp[i]=max(dp[j]+(sum[i]-sum[j])^2+m;化简下得:dp[i]=max(dp[j]+sum[i]^2+sum[j]^2-2*sum[i]*sum[j]); 无法直接用
单调队列
优化
qq415200973
·
2013-07-16 16:00
Trade-----HDU3401----
单调队列
优化的DP
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3401题目意思:有T天,你每天可以以API买进,BPI卖出,最多买ASI个,最多卖BSI个最多只能持有MAXP个商品,相邻两次交易要大于W天问你最多在第T天结束的时候能赚多少钱解题思路:有三个状态转移方程,其中dp[i][j]表示第i天手上有j个商品时我赚的钱dp[i][j]=max(dp[i][j],
·
2013-07-15 22:00
HDU
hdu 3401 Trade
单调队列
优化dp
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3401题目意思:一个人开始有无穷多的钱,问买股票最多能赚多少钱。要求:每天买卖的股票数量有限制bl和sl,交易的时间间隔必须超过w+1天。最多持有的数量为p股。解题思路:dp[i][j]表示前i天当持有j股股票时,获得的最大利益。状态转移:当第i天不交易时为dp[i-1][j];当第i天买(j-k)股时
·
2013-07-15 20:00
HDU
poj 3245 Sequence Partitioning dp+二分+
单调队列
题目链接:http://poj.org/problem?id=3245题目大意:有n个连续的数对(Ai,Bi).求一个划分,使得每一部分的B的和的最大值最小。划分要求:1、对于任意的pAq.2、对于每一部分的最大A的和小于给定的lim.解题思路:当p #include #include #include #include #include #include #include #include #i
cc_again
·
2013-07-15 20:00
hdu2191多重背包
单调队列
优化
多重背包
单调队列
优化:dp[c+i*p]=max(dp[c+k*p]+(i-k)*h);每种背包的容量p,价值h,c的范围为0~p-1,i和k的范围为0~num(能够取的背包的数量)背包的取法可以看做是划分为
qq415200973
·
2013-07-15 16:00
hdu 3401 Trade
单调队列
优化dp
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3401题目意思:一个人开始有无穷多的钱,问买股票最多能赚多少钱。要求:每天买卖的股票数量有限制bl和sl,交易的时间间隔必须超过w+1天。最多持有的数量为p股。解题思路:dp[i][j]表示前i天当持有j股股票时,获得的最大利益。状态转移:当第i天不交易时为dp[i-1][j];当第i天买(j-k)股时
cc_again
·
2013-07-15 09:00
用
单调队列
优化的题目 我要长高
我要长高http://www.acm.uestc.edu.cn/problem.php?pid=1685Description韩父有N个儿子,分别是韩一,韩二…韩N。由于韩家演技功底深厚,加上他们间的密切配合,演出获得了巨大成功,票房甚至高达2000万。舟子是名很有威望的公知,可是他表面上两袖清风实则内心阴暗,看到韩家红红火火,嫉妒心遂起,便发微薄调侃韩二们站成一列时身高参差不齐。由于舟子的影响力
qq415200973
·
2013-07-14 17:00
poj 3017 Cut the Sequence 不用什么堆和集合直接
单调队列
解决
CuttheSequenceTimeLimit: 2000MS MemoryLimit: 131072KTotalSubmissions: 8123 Accepted: 2343DescriptionGivenanintegersequence{ an }oflength N,youaretocutthesequenceintoseveralpartseveryoneofwhichisaconse
y5885922
·
2013-07-11 22:00
c
算法
ACM
poj 3017 Cut the Sequence(DP+
单调队列
)
题意,给定一个序列,让你把它分割成N个子串,使得每个子串的和 #include #include usingnamespacestd; #defineN100000 longlonga[N+5],dp[N+5]; longlongq[N+5]; inlinelonglongReadInt() { charch=getchar(); longlongdata=0; while(ch'9') { ch
t1019256391
·
2013-07-09 09:00
hdu 3530 Subsequence
单调队列
思路:维护2个
单调队列
,一个递增,一个递减。用一个now记录现在的区间的起点,如果大的数-小的数比k还大,则可以丢弃小的那个区间,更新now。
t1019256391
·
2013-07-08 15:00
BZOJ 2096([Poi2010]Pilots-
单调队列
-差值)
2096:[Poi2010]PilotsTimeLimit: 30Sec MemoryLimit: 162MBSubmit: 190 Solved: 97[Submit][Status]DescriptionTz又耍畸形了!!他要当飞行员,他拿到了一个飞行员测试难度序列,他设定了一个难度差的最大值,在序列中他想找到一个最长的子串,任意两个难度差不会超过他设定的最大值。耍畸形一个人是不行的,于是
nike0good
·
2013-07-06 13:00
HDU 3415(Max Sum of Max-K-sub-sequence-
单调队列
优化DP)
MaxSumofMax-K-sub-sequenceTimeLimit:2000/1000MS(Java/Others) MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):4729 AcceptedSubmission(s):1723ProblemDescriptionGivenacirclesequenceA[1],A[2
nike0good
·
2013-07-02 15:00
FZU 1894(志愿者选拔-裸的
单调队列
)
Problem1894志愿者选拔Accept:1001 Submit:3189TimeLimit:1500mSec MemoryLimit:32768KBProblemDescription世博会马上就要开幕了,福州大学组织了一次志愿者选拔活动。参加志愿者选拔的同学们排队接受面试官们的面试。参加面试的同学们按照先来先面试并且先结束的原则接受面试官们的考查。面试中每个人的人品是主要考查对
nike0good
·
2013-07-01 17:00
单调队列
之烽火传递问题
烽火台又称烽燧,是重要的防御设施,一般建在险要处或交通要道上。一旦有敌情发生,白天燃烧柴草,通过浓烟表达信息:夜晚燃烧干柴,以火光传递军情。在某两座城市之间有n个烽火台,每个烽火台发出信号都有一定的代价。为了使情报准确的传递,在m个烽火台中至少要有一个发出信号。现输入n,m和每个烽火台发出的信号的代价,请计算总共最少需要话费多少代价,才能使敌军来袭之时,情报能在这两座城市之间准确的传递。 例如,有
wdq347
·
2013-07-01 10:00
单调队列
之广告印刷问题
问题:有n幢建筑,其高度分别为H1,...,Hn,其宽度为1,且这些建筑紧靠在一起,当前需要在这些建筑上刷一个非常大的矩形广告,求矩形广告的最大值。 先翻译成数学题,给定n个正数的序列,定义区间值A(i,j)=Min(Hi,Hi+1,..,Hj)*(j-i+1),求所有区间值的最大值。这个问题网上都有答案,无奈答案一律都相当简单,个人实在无法理解,故成此文!(1)最简单的方法直接查看所有区间的区间
wdq347
·
2013-06-29 17:00
ZOJ3031
转自:http://www.cnblogs.com/fzf123/archive/2012/11/18/2775697.html 好久以前就看了些
单调队列
优化DP的资料,最近才终于搞懂是怎么回事~这里还转了一个
单调队列
的例子
a83610312
·
2013-06-28 16:00
Light OJ 1084 线段树+dp or(
单调队列
+dp) 水题
2B错误,线段树开了2倍空间,检查到死,改成4倍空间直接AC,太伤了,线段树太弱了。线段树:#include #include #include usingnamespacestd; #definelsonl,m,rt>1; constintmaxn=100005; constintinf=1e9; intn,k; inta[maxn]; intdp[maxn]; structsegtree{
c3568
·
2013-06-12 18:00
uestc oj 1221 Sliding Window
pid=1221 本题运用
单调队列
解决。 由于需要输出最大值与最小值两个序列,于是需要维护两个分别是递增的和递减的
单调队列
。
wuxinliulei
·
2013-05-30 18:00
单调队列
poj2823Sliding Window(
单调队列
入门)
->题目请戳这里 #include usingnamespacestd; constintN=1000005; intlcm[N]; intmx[N],mn[N]; intmxnum,mnnum; intn,k; structnode1 { intarray[N]; inthead,tail; inti; voidinit() { head=0; tail=-1; } inttop() { r
ophunter
·
2013-05-16 23:00
单调队列
hdu3415Max Sum of Max-K-sub-sequence(
单调队列
)
->题目请戳这里 #include #include usingnamespacestd; constintN=1000005; intlcm[N+N]; intn,k; intque[N+N]; inthead,tail; voidinit() { head=tail=0; } voidpush(intid) { while(headans) { ans=lcm[i]-lcm[que[hea
ophunter
·
2013-05-16 23:00
单调队列
CF 172(div2) D(
单调队列
)
D.MaximumXorSecondarytimelimitpertest2secondsmemorylimitpertest256megabytesinputstandardinputoutputstandardoutputBikeloveslookingforthesecondmaximumelementinthesequence.Thesecondmaximumelementintheseq
Wiking__acm
·
2013-05-15 20:00
POJ 2823 Sliding Window(
单调队列
)
id=2823线段树写9000MS+,实在看不下去了,百度出了
单调队列
。
z690933166
·
2013-05-10 17:00
hdu 3401 Trade
单调队列
+dp
dp[i][j]=dp[i-w-1][k]+(k-j)*ap[i]; 由于
单调队列
只能
diary_yang
·
2013-05-10 13:00
dp
优先队列
HDU
3401
poj 2823 Sliding Window dp
单调队列
的题目。
yrleep
·
2013-04-30 22:00
hdu 3415 Max Sum of Max-K-sub-sequence
单调队列
dp
MaxSumofMax-K-sub-sequenceTimeLimit:2000/1000MS(Java/Others) MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):4581 AcceptedSubmission(s):1656ProblemDescriptionGivenacirclesequenceA[1],A[2
cyendra
·
2013-04-23 16:00
题解
dp
动态规划
算法解析之感想---
单调队列
优化多重背包思路
这时,可以用
单调队列
优化,时间复杂度降为O(NM)。其优化思路是将当前重量限制取余物品重量数得到余数相同的归为一类,因此可以分为[0,V[i]-1]供V[i]类,其中对于每一
qiusuo800
·
2013-04-18 20:00
单调队列
优化DP
最近做了一些
单调队列
优化DP的题目,现在总结一下。遇到这类题目首先要能够想出朴素的DP状态转移方程,然后对其进行相应的转化,对于已知的部分用
单调队列
来维护。以下附几道题目,部分题解摘自别人的解题报告。
hrhacmer
·
2013-04-12 11:10
DP
单调队列
单调队列
优化DP
最近做了一些
单调队列
优化DP的题目,现在总结一下。遇到这类题目首先要能够想出朴素的DP状态转移方程,然后对其进行相应的转化,对于已知的部分用
单调队列
来维护。
HRHACMER
·
2013-04-12 11:00
HDU 3415 Max Sum of Max-K-sub-sequence
分析:
单调队列
。用sum[i]存储前i个整数的和,则i+1到j之间的整数和就是:sum[j]-sum[i]。对于环形情况的处理,只要在整数串最后补上前K个数就可以对其进行线性串的处理。
HRHACMER
·
2013-03-26 12:00
POJ 3250 Bad Hair Day
分析:
单调队列
。牛i能看到的牛的数量是j-i-1(设j>i,且牛j是第一个身高大于或等于牛i的牛)。
HRHACMER
·
2013-03-25 21:00
单调队列
模板
#include structNode{ intval,index; }que[100]; intmain() { intans[100]; intN,K,i,head,tail,x; scanf("%d%d",&N,&K); head=tail=0;//tail指向队尾元素的下一个位置 for(i=0;i=x)//队首存放最小值。 tail--; que[tail].val=x; que[
HRHACMER
·
2013-03-23 22:00
POJ 2823 Sliding Window
分析:裸的
单调队列
。此题输入输出量很大,用scanf和printf,C++编译器。用G++会TLE。不过用输入输出加速外挂会提高速度。
HRHACMER
·
2013-03-22 23:00
SDUT 2412 (
单调队列
+ dp)
然后
单调队列
优化一下就行。ViewCode#include #include #inc
AC_Von
·
2013-03-19 20:00
动态规划推荐题目(持续更新)
无需进行特别优化)1.POJ1745Divisibility2.POJ1837Balance3.POJ1088滑雪4.HDU2845Beans5.POJ1050TotheMax 二.进阶DP(需要进行必要优化) (
单调队列
优化
HRHACMER
·
2013-03-16 23:00
poj1742 Coins
三天了,从一点不会
单调队列
到AC。。。。。
zhangwei1120112119
·
2013-03-13 18:00
动态规划
背包
单调队列
[置顶] poj2559 Largest Rectangle in a Histogram hdu1505 City Game
若假设指定的是第k个宽为1的矩形,他到左边可以扩充到第lk个宽为1的矩形,他到右边可以扩充到第rk个宽为1的矩形,用
单调队列
求解lk和rk即可。
zhangwei1120112119
·
2013-03-10 15:00
单调队列
poj3250 Bad Hair Day
10374122问每头牛往又看能看到的牛的头顶的数量,最后累加即为答案10可以看到374,无法看到12之后的2和12本身解法:由于题意和输入顺序是相反的所以逆向思维,求出每头牛能被多少牛看到维护一个递减的
单调队列
zhangwei1120112119
·
2013-03-10 13:00
单调队列
poj 2823 Sliding Window
个数a[0],a[1]...a[n-1]输出第一行求F[i]=min(a[i-k+1],,,,,,,a[i])输出第二行求F[i]=max(a[i-k+1],,,,,,,a[i])解法:维护一个递增的
单调队列
zhangwei1120112119
·
2013-03-10 12:00
单调队列
[NOIP]
单调队列
(更新中)
例题:移动窗口(windows.pas)【问题描述】给你一个长度为N的数组,一个长为K的滑动的窗体从最左移至最右端,你只能见到窗口的k个数,每次窗体向右移动一位,如下表: windowposition Minvalue Maxvalue[13-1]-35367 -1 31[3-1-3]5367 -3 313[-1-35]367 -3
zz_ylolita
·
2013-03-06 22:00
noip
【vijos1243】【
单调队列
优化DP】生产产品
比较有意思的一道
单调队列
DP状态:f[i][j]表示前i个产品,其中第j个步骤是在第j个机器人上完成的,且第j+1步必须更换机器人生产完成的最短时间首先很容易想到一个朴素的DP方程:f[i][j]=min
njlcazl
·
2013-03-06 21:00
【SCOI2010】【
单调队列
优化DP】股票交易
很明显的DP,不过省选主要考察的就是DP优化了。朴素的做法如下:状态:用f[i][j]表示前i天中,最后1天收盘时手中还持有j股的股票所能得到的最大收益。转移方程:f[i][j]=max{f[i-1][j],f[i-W-1][j-k1]-ap[i]*k1,f[i-W-1][j+k2]+bp[i]*k2}。其中,k1=j-as[i],q #include usingnamespacestd; con
njlcazl
·
2013-02-25 20:00
hdu 3415 后缀数组 长度不小于 k 的公共子串的个数
///长度不小于k的公共子串的个数 /*
单调队列
优化 1aa1 2ab1 3abc2 4ad1 */ #include #include #include #include usingnamespacestd
azheng51714
·
2013-01-25 11:00
poj 2823 简单
单调队列
优化dp
///给定一个长N的整数序列,用一个大小为K的窗口从头开始覆盖,问第1-第N-K次窗口里面最大的数字和最小的数字。 #include #include #include usingnamespacestd; constintmaxn=1000012; intq1[maxn],q2[maxn],a[maxn],n,k,ans1[maxn],ans2[maxn]; intmain() { //freo
azheng51714
·
2013-01-20 17:00
上一页
41
42
43
44
45
46
47
48
下一页
按字母分类:
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
其他