随笔分类 -  数据结构-单调队列

【HDOJ5956】The Elder(树形DP,斜率优化)
摘要:题意:有一棵n个点的有根树,每条边上有一个边权。给定P,从i跳到它的祖先j的费用是距离的平方+P,问所有点中到根节点1的总花费最大值 n<=1e5,p<=1e6,w<=1e2 思路:对于根节点到每个点i的路径上是一个下凸壳,是经典的斜率优化 考虑在dfs时维护这个下凸壳,在斜率优化加入与删除点时记录 阅读全文

posted @ 2018-11-15 15:17 myx12345 阅读(159) 评论(0) 推荐(0) 编辑

【POJ3415】Common Substrings(后缀数组,单调栈)
摘要:题意: n<=1e5 思路: 我的做法和题解有些不同 题解是维护A的单调栈算B的贡献,反过来再做一次 我是去掉起始位置不同这个限制条件先算总方案数,再把两个串内部不合法的方案数减去 式子展开之后是 sigma(lcp(i,j))-K*L*(L+1)/2+合法(i,j)对数,其中L为连续的height 阅读全文

posted @ 2018-09-13 20:28 myx12345 阅读(163) 评论(0) 推荐(0) 编辑

【HDOJ6319】Ascending Rating(单调队列)
摘要:题意: 思路: 倒着来是因为这样可以维护每一个当过最大值的数,而正着不行 阅读全文

posted @ 2018-08-04 21:44 myx12345 阅读(157) 评论(0) 推荐(0) 编辑

【NOIP2017练习】鏖战字符串(斜率优化DP)
摘要:题意: 在决胜局中,Abwad决定和nbc鏖战字符串,比的是谁能更快地将一个“量子态的字符串”删除。“量子态的字符串”的每个字符都有一个删除难度dif[i]。“量子态的字符串”非常顽固,只能先分割成若干个子串,然后再通过以下两种方式删除: 1、假设子串的所有字符的删除难度之和为x,消耗a*x2+b的 阅读全文

posted @ 2017-10-12 19:51 myx12345 阅读(270) 评论(0) 推荐(0) 编辑

【NOIP2016】蚯蚓(单调队列)
摘要:题意: 思路: 我们发现,对于任意两次切割i和j,i<j,在进行完第j次切割后,第i次切割的u/v部分一定大于等于第j次切割的u/v部分,第i次的1-u/v部分也一定大于等于第j次的1-u/v部分证明很显然,假设在第i次切割的时候,切割的蚯蚓长度为x,第j次的时候为y+(i-j)q,那么有x>=y, 阅读全文

posted @ 2017-08-23 19:17 myx12345 阅读(257) 评论(0) 推荐(0) 编辑

【ZJOI2017 Round2练习&BZOJ4826】D1T2 sf(主席树,单调栈)
摘要:题意: 思路:From http://blog.csdn.net/neither_nor/article/details/70211150 对每个点i,单调栈求出左边和右边第一个大于i的位置,记为l[i]和r[i] 那么(l[i],r[i])会产生p1的贡献 左端点为l[i],右端点在[i+1,r- 阅读全文

posted @ 2017-04-19 10:10 myx12345 阅读(151) 评论(0) 推荐(0) 编辑

【BZOJ3238】差异(后缀数组,单调栈)
摘要:题意: 思路:显然len(t[i])+len(t[j])这部分的和是一定的 那么问题就在于如何快速求出两两之间lcp之和 考虑将它们排名后用SA可以很方便的求出lcp,且对答案没有影响,因为形式都是数对 所以用SA求出height 每个位置的height作为lcp的区间为扩展到最左最右,直到heig 阅读全文

posted @ 2017-04-17 07:20 myx12345 阅读(177) 评论(0) 推荐(0) 编辑

【ZJOI2017 Round1练习&BZOJ5350】D5T1 masodik(DP,斜率优化)
摘要:题意:你要从(0,0)点走到(n,m), 每次只能往 x 轴或者 y 轴正方向移动一个单位距离。从(i,j)移动到(i,j+1)的代价为 ri,从(i,j)移动到(i+1,j)的代价为 cj。 求最小代价。 对于 20%的数据, n, m<=5000。对于 100%的数据, n, m<=10^5,0 阅读全文

posted @ 2017-03-07 11:30 myx12345 阅读(184) 评论(0) 推荐(0) 编辑

【POJ1276】Cash Machine(多重背包单调队列优化)
摘要:大神博客转载http://www.cppblog.com/MatoNo1/archive/2011/07/05/150231.aspx多重背包的单调队列初中就知道了但一直没(不会)写二进制优化初中就写过一直不写会心虚就写一下这个吧朴素方程dp[i,j]=max(dp[i-1,j-w[i]*k]+c[ 阅读全文

posted @ 2016-05-25 21:08 myx12345 阅读(578) 评论(0) 推荐(0) 编辑

【HDU3507】Print Article(斜率优化DP)
摘要:单调队列DP复出练手题 朴素方程dp[i]=min(dp[j]+(s[i]-s[j-1])^2+m 你懂得 1 var dp,s:array[0..500000]of int64; 2 a,q:array[1..500000]of longint; 3 n,m,i,t,w:longint; 4 5 阅读全文

posted @ 2016-05-25 20:07 myx12345 阅读(169) 评论(0) 推荐(0) 编辑

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

导航

统计

点击右上角即可分享
微信分享提示