码迷,mamicode.com
首页 > 其他好文 > 详细

【心得】单调队列

时间:2016-06-05 20:05:33      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:

单调队列

其实是初二就学的,但是当时只是会做几道例题,没有总结规律,现在看入门经典时突然感觉以前学的时候太不仔细了,漏过很多细节,于是来填(wa)个坑。

先抄几道例题(其实例题都属于“滑动窗口”一栏,但其实思想一样,直接被我归纳为单调队列了)


 

1.Window 不解释

知道单调队列的应该都知道Window。

Window作为一道经典例题,体现了单调队列的基本特征

1.只关心最优解(要求前n个最优解请出门左拐找隔壁优先队列,单调队列的队列里可能只有1个答案)

2.允许在线更新(废话,不然我排个序不就完事了)

3.多快好省(所有没用的都被自动排除,而且均摊下来每次操作时间才常数)


 

2.Defense Lines,Uva1471

删掉一段连续的子序列,剩下的序列里最长连续递增子序列

先上个暴力

枚举删掉的子序列的头尾O(n2),统计长度O(n)

总复杂度n3

忘记说了,n范围200,000

 

233

 

所以怎么降?

首先很明显统计长度的n是不需要的,预处理一下就好了

还有n2

 

。。。

 

差点忘了主题单调队列(当然考试的话题目不会告诉你这道题是单调队列,但是看着滑动的一个东西就像)

树上并没有说这是单调队列,但我觉得这实际上还是换汤不换药,把各方面表现都很辣鸡(不但没有别人好还比别人死得早)的结果舍去,最后树上说复杂度为nlgn(为什么感觉像n,是不是哪漏算了)


 

【心得】单调队列

标签:

原文地址:http://www.cnblogs.com/wanglichao/p/5561560.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!