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
leetcode#单调栈
斜率优化DPHDU-3507,HNOI2008玩具装箱,APIO特别行动队,USACO Land Acquisition
前言:也是好久没有写题解了,最近主要学习了
单调栈
单调队列以及斜率优化DP这几个知识点,对于较难的斜率优化DP,做个小小的总结吧。
wzq_QwQ
·
2015-04-24 17:00
POJ 2559 Largest Rectangle in a Histogram(
单调栈
)
可以用两个循环暴力一遍求每个点以自己的高度能向两边扩展形成最大长方形的面积时间复杂度是O(n^2),明显会TLE(cincout也会TLE),所以这题要用到
单调栈
的思想(构建一
yexiaohhjk
·
2015-04-23 17:00
动态规划
栈
HDU 4252(
单调栈
)
#include #include #include #include #include usingnamespacestd; typedeflonglongLL; #definelsonl,m,rtQ; intn; intmain() { intkase=1; while(scanf("%d",&n)==1){ while(!Q.empty())Q.pop(); intres=0,x; for(
playwfun
·
2015-04-18 18:00
HDU:4252 A Famous City(
单调栈
)
思路:
单调栈
。用一个栈维护一个单调递增序列。如果栈空或栈顶小于当前元素可将当前元素压栈,如果小于栈顶元素则将栈顶元素弹出并将答案加一,相同则无视。
kkkwjx
·
2015-04-18 14:00
单调栈
BZOJ3238【后缀数组】【
单调栈
】
/*Iwillwaitforyou*/ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #definemakemake_pair #definefifirst #definesesecond
Lethelody
·
2015-04-14 16:00
BZOJ1057【
单调栈
】
无限仰慕KeyID讲的不用
单调栈
的方法.
Lethelody
·
2015-04-12 11:00
[BZOJ 3238][AHOI 2013]差异(后缀数组+
单调栈
)
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=3238思路感谢http://www.cnblogs.com/Tunix/p/4211675.html非常详细的讲解。首先很容易预处理出所有的T(i)+T(j)总和,为n(n+1)(n−1)2(随便找个数列玩玩可以发现每个数字各算了n−1次,共有n个数字,它们之和为n(n+1)2)然后就是要减去
qpswwww
·
2015-04-07 21:00
POJ 3415 Common Substrings(长度不小于k 的公共子串的个数--后缀数组+
单调栈
优化)
题意:给定两个字符串A和B,求长度不小于k的公共子串的个数(可以相同)。样例1:A=“xx”,B=“xx”,k=1,长度不小于k的公共子串的个数是5。样例2:A=“aababaa”,B=“abaabaa”,k=2,长度不小于k的公共子串的个数是22。思路:如果i后缀与j后缀的LCP长度为L,在L不小于K的情况下,它对答案的贡献为L-K+1.于是我们可以将两个串连起来,中间加个奇葩的分隔符,做一遍后
kalilili
·
2015-03-31 22:00
poj 3250
单调栈
(看到前面的牛的数量)
思路:
单调栈
(类似2559和3934),栈中按照递减顺序保存牛的高度,对于当前牛判断它入栈的位置。其实stack不必设置h域,stack只存下标即可,找栈中高度用s[下标]就行了。看到另一种思路:
dumeichen
·
2015-03-25 19:00
POJ:2796 Feel Good(
单调栈
)
思路:用一个
单调栈
,计算以某数为区间的最小值的区间左右范围。
kkkwjx
·
2015-03-11 17:00
枚举
单调栈
poj 2796 st算法+二分 /
单调栈
FeelGoodTimeLimit:3000MSMemoryLimit:65536KTotalSubmissions:10430Accepted:2855CaseTimeLimit:1000MSSpecialJudgeDescriptionBillisdevelopinganewmathematicaltheoryforhumanemotions.Hisrecentinvestigationsar
HuanTongH
·
2015-03-07 18:32
数据结构
搜索
单调栈
解决完为这道题目,我才真正明白了
单调栈
的原理,它就是以某一个值为最小(最大)值,向这个值的两侧延伸,遇到大于它(小于它)的值,就将它延伸的范围扩大,当然,一般来说,要这样做的算法复杂度为o(n^2),但是借助栈这个玩意
kl28978113
·
2015-03-03 20:00
POJ 3415 Common Substrings 后缀数组 +
单调栈
维护
题目大意:用A[i,k]表示以字符串第i位开始长度为k的字符串,B[j,k]同理对于给定的字符串A,B和整数K,求使得A[i,k]==B[j,k]的三元组(i,j,k)的数量,其中要求k>=K大致思路:很容易想到先将两个字符串连接起来中间用一个没有出现的值隔开,求后缀数组首先如果我们只考虑对于给定的k==K的三元组数量,是可以直接根据后缀数组中height数组进行分组统计的,但是由于要求k>=K如
u013738743
·
2015-02-05 15:00
poj
后缀数组
common
Substrings
单调栈
3415
UVa10635 Prince and Princess ACM解题报告(LCS与LIS的转化+
单调栈
+二分查找代替DP)
这题给出一个长p+1和一个长q+1的序列,然后找他们的LCS,由于数据量比较大,有62500多,并且两个序列中都没有重复出现的数字,即可给每个数字标号,给第一序列标号乘1,2,3,4,。。。。,p+1,于是第二个序列中对应用编号代替原来的数字。此时两个序列的LCS即第二个序列的LIS(巧妙地转化问题缩小规模),但是62500的数据量用O(n^2)的dp查找还是会爆(我TLE了三次),于是我网上学习
Miracle_ma
·
2015-02-04 15:00
ACM
BZOJ 1057 ZJOI2007 棋盘制作
单调栈
题目大意:给定一个黑白两色的矩阵,求最大的黑白相间的子正方形和子矩阵将奇数位置的点反色,然后就是求纯色的最大子正方形和子矩阵将矩阵一层层剖分,每层上方是一段类似于▆▃▇▂▉的东西,用
单调栈
跑出每个点向左向右能拓展到的最大距离
PoPoQQQ
·
2015-01-20 09:00
单调栈
bzoj
BZOJ1057
【BZOJ3039】玉蟾宫/【HDU1505】【POJ1964】City Game 最大01子矩阵
转载请注明出处:http://blog.csdn.net/vmurder/article/details/42884845首先我们可以用
单调栈
每行扫一遍,维护一个点向上下左右各能延伸多长。
Vmurder
·
2015-01-19 22:00
game
city
BZOJ3039
最大01子矩阵
玉蟾宫
HDU1505
BZOJ 1057 ZJOI 2007 棋盘制作 DP+悬线法
第一问就是水DP,第二问可以
单调栈
或者悬线。都很好写。CODE:#include #include #include #include #defineMAX2010 usingnamespac
jiangyuze831
·
2015-01-14 08:00
dp
bzoj
悬线法
ZJOI2007
BZOJ 3611 HEOI2014 大工程 倍增LCA+
单调栈
+树形DP
题目大意:给定一棵树,m次询问,每次给出k个关键点,询问这k个点之间的两两距离和、最小距离和最大距离n #include #include #include #defineM1001001 #defineINF0x3f3f3f3f usingnamespacestd; structabcd{ intto,next; }table[M=dpt[y]) x=fa[x][j]; if(x==y)retu
PoPoQQQ
·
2015-01-07 17:00
单调栈
树形DP
bzoj
倍增LCA
BZOJ3611
BZOJ 2286 SDOI2011 消耗战 倍增LCA+
单调栈
题目大意:给定一棵树,边上有边权,m次询问,每次选定一些关键点,求将1号节点与所有关键点都切断所需的最小花销关键点的总数 #include #include #include #defineM250100 #defineINF0x3f3f3f3fll usingnamespacestd; structabcd{ intto,f,next; }table[M=dpt[y]) x=fa[x][j];
PoPoQQQ
·
2015-01-07 15:00
单调栈
bzoj
倍增LCA
BZOJ2286
【线段树】 Codeforces 500E New Year Domino
用
单调栈
维护一下就好啦。。。。
blankcqk
·
2014-12-31 18:00
codeforces
BZOJ 3238 AHOI 2013 差异 后缀数组+
单调栈
这个东西很明显可以倍增RMQ+二分/
单调栈
。之后就是数学题了Σlen[Ti]+len[Tj]=(len+1)*len*(len-1),之后吧所有求出来的Σ2*lcp(Ti,
jiangyuze831
·
2014-12-30 20:00
字符串
后缀数组
2013
bzoj
AHOI
【POJ3658】【USACO 2008 Jan Gold】 2.Artificial Lake人工湖
单调栈
人工湖TimeLimit: 1Sec MemoryLimit: 128MBDescription 夏日那让人喘不过气的酷热将奶牛们的烦躁情绪推到了最高点。最终,FJ决定建一个人工湖供奶牛消暑之用。为了使湖看起来更加真实,FJ决定将湖的横截面建成N(1 #include #include #include #defineN101000 #defineinf0x3f3f3f3f usingna
Vmurder
·
2014-12-30 17:00
USACO
2008
单调栈
Lake
Gold
Artificial
JAN
POJ3658
#
leetcode#
Reverse Integer
https://oj.leetcode.com/problems/reverse-integer/Reversedigitsofaninteger.Example1:x=123,return321Example2:x=-123,return-321----------------------------------------------------------------------------
议题一玩到
·
2014-12-26 16:20
LeetCode
#
leetcode#
Reverse Integer
https://oj.leetcode.com/problems/reverse-integer/Reversedigitsofaninteger.Example1: x=123,return321Example2: x=-123,return-321--------------------------------------------------------------------------
ChiBaoNeLiuLiuNi
·
2014-12-26 16:00
java
LeetCode
hdu 4923 数学和
单调栈
因为他们不会造成对最后结果造成影响,而中间的每组11.....11100......000一定是给定的形式,而要使当前组的平方差之和最小,那么每组的b定是一个一个值,且当且仅当这个值是平均值时,才会最小,通过
单调栈
维护单调性
qq_24451605
·
2014-12-24 19:00
数据结构
C++
算法
数学
单调栈
USACO 刷水
【BZOJ1613】【USACO2007Jan】贝茜的晨练计划dp【BZOJ1623】【USACO2008Open】奶牛飞车贪心【BZOJ1628】【USACO2007Demo】CitySkyline
单调栈
czysjr
·
2014-12-24 17:09
【POJ】3415 Common Substrings 【后缀数组+
单调栈
】
比较好的方法是
单调栈
。首先将两个串连接到一起,
u013368721
·
2014-12-10 21:00
poj
OI 基础知识
1.1基本数据结构1.数组2.链表,双向链表3.队列,单调队列,双端队列4.栈,
单调栈
1.2中级数据结构1.堆2.并查集与带权并查集3.hash表自然溢出双hash1.3高级数据结构1.树状数组2.线段树
czysjr
·
2014-12-01 17:32
UVALive 6531 Go up the ultras
单调栈
+RMQ
思路:求距离某个点最近的山就是维护一个
单调栈
,然后给山的高度求一个RMQ。写写写。。。#pragmaco
qq574857122
·
2014-10-30 00:00
hdu 4923
单调栈
http://acm.hdu.edu.cn/showproblem.php?pid=4923给定一个序列a,元素由0,1组成,求一个序列b,元素在0~1之间,并且保证递增。输出最小的∑(ai−bi)2对于每个由连续1开头,连续0结尾的段落有最优值x=a/a+b=sum/len(a为1的个数,b为0的个数),用栈维护各个段的x(d[i])值,如果当前x值小于前面一个段的x值,那么就要将两个段合并,相
u012774187
·
2014-10-21 18:00
HDOJ 4252 A Famous City
单调栈
单调栈
:维护一个
单调栈
AFamousCityTimeLimit:10000/3000MS(Java/Others) MemoryLimit:32768/32768K(Java/Others)TotalSubmission
u012797220
·
2014-10-17 23:00
hdu 5033 模拟+单调优化
维护一个凸包,据说可以用
单调栈
#include #include #include #include #include #include #include #include #include usingnamespa
u012774187
·
2014-10-15 16:00
acdream OJ 1430 SETI 后缀数组
应该扣吧..这道题给height数组分段算 好像有道题和这个很像height[i]>=k并且连着的算一段 如果这一段有至少一个符合条件(不重叠)的 那么ans++我这里是用暴力写的 写完以后想想好像是
单调栈
啊
Hivoodoo
·
2014-10-06 17:00
数据结构
字符串
ACM
后缀自动机
POJ - 3415 Common Substrings(后缀数组求长度不小于 k 的公共子串的个数+
单调栈
优化)
DescriptionAsubstringofastring T isdefinedas:T( i, k)= TiTi+1... Ti+k-1,1≤ i≤ i+k-1≤| T|.Giventwostrings A, B andoneinteger K,wedefine S,asetoftriples(i, j, k):S ={( i, j, k)| k≥ K, A( i, k)= B( j, k)
u011345136
·
2014-09-29 11:00
HDU 5033 Building
分析:利用
单调栈
分别算出最右的能够看见的楼,和最左的能够看见的楼,然后计算。
·
2014-09-26 23:00
Build
Codeforces 467E Alex and Complicated Task(高效)
所以用一个
单调栈
维护,如果新加入的数x在栈中出现过,那么就将两个数之间的数标记为在x。如果一个数的标记不为空,就意味着找到对应的四元组。有因为序列是从左遍历过去的,所以找到的一定是最优的。#incl
u011328934
·
2014-09-26 20:00
HDU - 5033 Building(
单调栈
)
BuildingTimeLimit: 5000MS MemoryLimit: 262144KB 64bitIOFormat: %I64d&%I64uDescriptionOnceuponatimeMattwenttoasmalltown.Thetownwassosmallandnarrowthathecanregardthetownasapivot.Thereweresomeskyscrapers
HelloWorld10086
·
2014-09-24 16:00
HDU
building
5033
HDU 5033 Building
:地面上有n座楼 你分别站在m个位置上 问每个位置上能看见多大角度的天空思路:很明显能想到在站的位置两边维持单调性 因此我们可以将站位和楼的位置排序 从左到右维护一遍 再从右到左维护一遍 这里可以利用
单调栈
u013351160
·
2014-09-24 10:00
数据结构
HDU
HDU5033-Building(维护
单调栈
)
题目链接题意:给出n座大楼的位置以及高度,再给出m个人的位置,查询给出的人的位置所能看到的最大的仰角是多少。思路:维护每两座的楼之间的斜率,使之成为一个凸面,用栈来维护,听了GG小伙伴的思路,可以将人当作高度为0的大楼来带入计算。代码:#include #include #include #include #include usingnamespacestd; constintMAXN=200
u011345461
·
2014-09-23 14:00
POJ 2796 Feel Good(
单调栈
)
题目地址:POJ2796
单调栈
的第一题就是这道。。把我弄的晕头转向。现在终于明白了,对
单调栈
又加深了理解。原来
单调栈
不只是可以维护数。
u013013910
·
2014-09-23 11:00
编程
算法
C语言
ACM
单调栈
HDU 5033 Building
也就是相邻两建筑顶(xi,hi)的连线的斜率的绝对值上升的
单调栈
。BuildingTimeLimit:10000/5000MS(Java/
u011788531
·
2014-09-23 10:00
【HDU】5033 Building
单调栈
传送门:【HDU】5033Building题目分析:就
单调栈
用叉积左右维护一个上凸壳就好了。。。
u013368721
·
2014-09-23 10:00
HDU
POJ 3250 Bad Hair Day(
单调栈
)
题目地址:POJ3250初学
单调栈
。多校和网络赛已经碰到两次了。
单调栈
的原理简单的不能再简单了。。就是让栈里的元素从栈顶到栈底呈单调性。比如说递增
单调栈
。
u013013910
·
2014-09-22 23:00
编程
算法
C语言
ACM
单调栈
hdu5033 Building 北京网络赛B题
单调栈
ProblemDescriptionOnceuponatimeMattwenttoasmalltown.Thetownwassosmallandnarrowthathecanregardthetownasapivot.Thereweresomeskyscrapersinthetown,eachlocatedatpositionxiwithitsheighthi.Allskyscrapersloca
corncsd
·
2014-09-22 21:00
HDU 5033 Building(北京网络赛B题)
HDU5033Building题目链接思路:利用
单调栈
维护建筑建的斜线,保持斜率单调性,然后可以把查询当成高度为0的建筑,和建筑和在一起考虑,从左往右和从右往左各扫一遍即可代码:#include #include
u011217342
·
2014-09-22 16:00
[2014 北京网络赛]
02hdu5033 Building题目意思:数轴上有n根柱子,每根柱子有个位置坐标和高度,有q个询问,询问从位置qi能看到的角度(保证左右至少有一个柱子)解题思路:
单调栈
维护一个凸性柱子序列。
cc_again
·
2014-09-21 22:00
【DP】 HDOJ 5033 Building
单调栈
。。。。
blankcqk
·
2014-09-21 19:00
HDU
BZOJ 1012 JSOI2008 最大数maxnumber
单调栈
+二分 / 线段树
查询序列后Q个数字中的最大值2.在序列尾部插入(n+t)%d,其中t是上一次查询的结果首先我们发现如果一个数的右面有一个比他大的数,那么这个数永远不会成为最大值他就会被弹掉说白了这题要维护一个单调递减的
单调栈
对于每次查询我们二分查找
PoPoQQQ
·
2014-09-12 20:00
线段树
二分
单调栈
bzoj
BZOJ1012
poj 2796 Feel Good (
单调栈
)
FeelGoodTimeLimit: 3000MS MemoryLimit: 65536KTotalSubmissions: 9778 Accepted: 2652CaseTimeLimit: 1000MS SpecialJudgeDescriptionBillisdevelopinganewmathematicaltheoryforhumanemotions.Hisrecentinvestiga
u014253173
·
2014-09-11 20:00
算法
ACM
poj
poj 2726 Holiday Hotel (排序&&
单调栈
)
HolidayHotelTimeLimit: 2000MS MemoryLimit: 65536KTotalSubmissions: 8098 Accepted: 3176DescriptionMr.andMrs.Smitharegoingtotheseasidefortheirholiday.Beforetheystartoff,theyneedtochooseahotel.Theygotali
u014253173
·
2014-09-10 20:00
算法
ACM
上一页
49
50
51
52
53
54
55
56
下一页
按字母分类:
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
其他