B. Psychos in a LineTime Limit: 20 SecMemory Limit: 256 MB题目连接http://codeforces.com/problemset/problem/319/BDescriptionThere are n psychos standing in...
分类:
其他好文 时间:
2015-06-30 12:15:44
阅读次数:
195
题目大意:有N个数字a[N],每输出连续的一串,它的费用是 “这行数字的平方加上一个常数M”。问如何输出使得总费用最小。(n<=500000)分析:动态规划方程为:dp[i]=dp[j]+M+(sum[i]-sum[j])^2;右边有一项为:sum[i]*sum[j]。考虑用单调队列。令dp[i]=...
分类:
其他好文 时间:
2015-06-22 19:19:33
阅读次数:
127
题目:在一个序列中找一个最长子串,使得子串的m
维护一个递减的单调队列q1(队首为当前最大),同时维护一个递增的单调队列q2(队首为当前最小),控制最大减最小 小于等于k , 若最大减最小大于等于m,则更新答案。
代码:
#include
#include
#include
#include
#include
using namespace std;
const int N = 1e5+10...
分类:
其他好文 时间:
2015-06-19 11:58:57
阅读次数:
114
题目:一个圆周被均匀分成n个点,每个点有一个高度h[i],定义两个点的距离是dis(i,j) = h[i] + h[j] + (劣弧i,j).问最长距离的点对,要求字典序最小。
单调队列:因为是圆周,要先把圆周变成链,倍增即可。在2n的链上,维护一个 h[i]-r*i 的单调递减队列,控制队列元素个数
为什么要维护h[i]-r*i的递减队列呢?因为革更新答案时 是用h[i]+r*i +...
分类:
其他好文 时间:
2015-06-19 10:24:06
阅读次数:
122
题目大意:给出一串长度为n的整数串,求最长的一个连续子序列,满足该序列中最大的元素与最小的元素之差大于等于m,并且小于等于k。n最大值,则当前区间的上限变为a[i],下限在范围[a[i]-m,a[i]-k]之内。在递增的单调队列中不断的删除队头,直到找到一个在范围[a[i]-m,a[i]-k]内的队...
分类:
其他好文 时间:
2015-06-18 13:25:01
阅读次数:
120
详见vfleaking在discuss里的题解.收获: 当我们要顺序枚举一个序列,并且跳过某些元素,那么我们可以用并查集将要跳过的元素合并到一起,这样当一长串元素需要跳过时,可以O(1)跳过.暴力: 1 /***********************************************...
分类:
其他好文 时间:
2015-06-13 18:28:06
阅读次数:
165
题目大意:给定一个由+1+1和?1-1构成的长度为nn的序列,提供两种操作:
1.将某一位取反,花销为xx
2.将最后一位移动到前一位,花销为yy
要求最终p+sumn=qp+sum_n=q,且p+sumi≥0(1≤i≤n)p+sum_i\geq 0(1\leq i\leq n),求最小花销
枚举最终的序列以哪个点开始,那么从这个点往后的最小前缀和可以用单调队列预处理出来
然后贪...
分类:
其他好文 时间:
2015-06-08 17:22:19
阅读次数:
136
BZOJ 1855 [Scoi2010]股票交易 单调队列优化DP...
分类:
其他好文 时间:
2015-06-08 13:29:31
阅读次数:
138
题意特难懂,我看了好多遍,最后还是看讨论版里别人的问答,才搞明白题意,真是汗。其实题目等价于给n个点,这n个点均匀分布在一个圆上(知道圆半径),点与点之间的路程(弧长)已知,点是有权值的,已知,点与点的距离等于其最短路程(弧长)加上两点的权值,问距离最远的两个点的下标。因为是环状,不好处理,所以我在...
分类:
其他好文 时间:
2015-06-06 23:22:05
阅读次数:
150
单调队列的性质:(1)队列中的元素按照大小递增或递减(2)可以在队列尾部添加元素,可以在队列头部或尾部删除元素如何维护单调队列呢,以单调递增序列为例:1、如果队列的长度一定,先判断队首元素是否在规定范围内,如果超范围则增长队首。2、每次加入元素时和队尾比较,如果当前元素小于队尾且队列非空,则减小尾指...
分类:
其他好文 时间:
2015-06-03 19:13:56
阅读次数:
120