Sound静音问题 bzoj-1342 Baltic-2007 题目大意:给定一个n个数的序列,求所有的长度为m的区间,使得区间内最大值减去最小值不超过阈值c。 注释:$1\le n \le 10^6$,$1\le m\le 10^4$。 想法:单调队列裸题。 定长区间最值问题显然可以用单调队列维护 ...
分类:
其他好文 时间:
2018-07-31 11:14:45
阅读次数:
139
【题目大意】 给出一个n个数的序列,以哪位位置为开头的长度为m的区间满足该区间的最大值与最小值的差≤一个定值。 【思路】 单调队列……说一下单调队列比较方便的操作。 把第一个先丢进去,开始条件为head=tail=1。就OK了。我以前总是喜欢左闭右开,还是都闭合好了不容易写错QAQ 所以……越刷越水 ...
分类:
其他好文 时间:
2016-11-15 00:23:42
阅读次数:
141
题意:
虽然这道题是汉语的,但是我有必要说一下题意。
就是问你长度为m的区间中,有哪些区间的最大值-最小值
注意!!!如果没有方案输出NONE。
题解:
首先我们可以写一个multiset2400ms+,就是这样,然后貌似还可以写个线段树(不知道有没有人写)
但是正解显然是写两个O(n)的单调队列。
一个维护当前区间最大值,另一个维护最小值。
代码:
#include...
分类:
其他好文 时间:
2015-01-21 20:09:58
阅读次数:
117
题目大意:给定一个长度为n的序列,求哪些长度为m的区间满足区间内最大值与最小值之差小于等于c
利用单调队列维护区间内的最大值和最小值- - 硬搞就可以了- -
刷刷水题真爽- -
#include
#include
#include
#include
#define M 1001001
using namespace std;
int n,m,c,a[M];
int q_max[M]...
分类:
其他好文 时间:
2015-01-18 22:43:00
阅读次数:
204
越来越水了。。。这道题是简单的单调队列,同时维护最大值和最小值即可。另解:multiset大法求区间最大最小,但是复杂度会上升。。。 1 /************************************************************** 2 Problem: 13...
分类:
其他好文 时间:
2014-11-01 00:51:32
阅读次数:
289
O(n)地枚举所有长度为k的段,每次暴力转移。转移的时候只是从最后插入一个数,从前面删去一个数。计算的时候要取当前的max和min。用multiset(∵元素是可重的)以上这些操作都是O(logn)的。 1 #include 2 #include 3 using namespace std; 4 m...
分类:
其他好文 时间:
2014-10-31 07:41:33
阅读次数:
270