单调队列
Self-Discipline
在校大学生
展开
-
hdu-5289
题目:点击打开链接 题意:给出一个数列,问其中存在多少连续子序列,子序列的最大值-最小值< k 。 分析: 解法一:二分+RMQ,枚举左端点,RMQ预处理(st表),二分找到每个左端点满足条件的右界。 解法二:单调队列,维护两个单调队列,一个单调递增,一个单调递减,双指针,第一个第二个指针初始指向第一个数据,第一个指针按顺序不断向队尾添加数据,当最大值最小值的差大于等于k后,就意味着新添...原创 2018-10-28 15:11:50 · 444 阅读 · 0 评论 -
LA 4327 Parade(单调队列优化dp)
题意:F城由n+1个横向路和m+1个竖向路组成。你的任务是从最南边的路走到最北边的路,使得走过的路上的高兴值和最大(高兴值可能为负值)。同一段路不能经过两次,且不能从北往南走,在每条横向路所花时间不超过k。 分析:从南往北走和从北往南走是等价的,令d[ i ][ j ]为走到( i , j )最大的高兴值,则dp[ i ][ j ]=max(dp[ i-1 ][ p ]+s[ j ]-s[ p ...原创 2019-07-29 15:10:31 · 241 阅读 · 0 评论 -
BZOJ1791/洛谷4381 Island 岛屿(基环森林直径和+单调队列优化DP+树形DP)
题意:基环树森林的各个树直径之和。 分析:基环树(树)森林直径模板,详见《算法竞赛进阶指南》P388-389。 代码: #include<iostream> #include<cstdio> using namespace std; const int u=1000010; int ver[2*u],edge[2*u],next[2*u],head[u],du[...原创 2019-07-30 10:56:59 · 371 阅读 · 0 评论