题目Description现在请求你维护一个数列,要求提供以下两种操作: 1、 查询操作。语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值。限制:L不超过当前数列的长度。 2、 插入操作。语法:A n 功能:将n加上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0),并将所得结果对一个固定的常数D取模,将所得答案插入到数列的末尾。限制:n是非负整数并且在...
分类:
其他好文 时间:
2015-02-21 18:52:45
阅读次数:
151
题意:给出一个01串,选一个长度至少为L的连续子串,使得串中数字的平均值最大。分析:能把这道题想到用数形结合,用斜率表示平均值,我觉得这个想法太“天马行空”了首先预处理子串的前缀和sum,如果在坐标系中描出(i, sum[i])这些点的话。所求的平均值就是两点间的斜率了,具体来说,在连续子串[a, ...
分类:
其他好文 时间:
2015-02-08 11:35:15
阅读次数:
315
题意:已经懒得吐槽了。。有N个山峰,(N
它高的山峰都会经过一个最低值(山谷),d代表是h减去这些最低值中的最大值的差(如果不存在比它高的山峰那么d就是它本身的
高度),问有多少山峰的d>=150000米。
思路:利用单调栈维护每个峰左边第一个比它高的峰的位置l,右边第一个比它高的峰的位置r,对于r,我们从前向后维护一个单调减
序列,如果当前考虑的点i比栈顶的元素高度高,那么弹出栈顶元素,...
分类:
其他好文 时间:
2015-02-07 09:12:30
阅读次数:
137
虚树+树形DP OrzZYF……果然好神……建虚树先按dfn排序,再用一个单调栈来维护当前这条【链】,往里加边……说实话还没弄懂- -留个坑吧……RE的原因:这条链往出退的时候没写top--;在第112行……导致死循环了! 1 /*********************************.....
分类:
其他好文 时间:
2015-02-01 23:05:08
阅读次数:
289
题目大意:给定一个黑白两色的矩阵,求最大的黑白相间的子正方形和子矩阵
将奇数位置的点反色,然后就是求纯色的最大子正方形和子矩阵
将矩阵一层层剖分,每层上方是一段类似于▆▃▇▂▉的东西,用单调栈跑出每个点向左向右能拓展到的最大距离,更新答案即可
#include
#include
#include
#include
#define M 2020
using namespace std;...
分类:
其他好文 时间:
2015-01-20 10:33:03
阅读次数:
210
转载请注明出处:
首先我们可以用单调栈每行扫一遍,维护一个点向上下左右各能延伸多长。
当然,这是可以做的,也是很恶心的。
我们可以每行扫一遍,维护每个点当前的[列高度]时能向左向右的最大延伸距离。
当然,某个点可能降低一点高度,就会更宽,结果更优,但是显然既然存在这种结果,那么其它列一定可以代劳。
呃。所以每行扫一遍,然后记录这行每个节点以最大高度能向左向右延伸的最大距离...
分类:
其他好文 时间:
2015-01-20 09:05:29
阅读次数:
191
题解:又是一个大坑。。。算法一:很明显,最小割。预计得分20分。算法二:每次做一遍树DP,预计得分40分。算法三:虚树+单调栈。算法三是为了优化算法二而出现的,因为关键点很少,而我们每次都要dfs整棵树过于浪费。而我们只把关键点和它们的lca拎出来。使得每个点要不是关键点,要不是lca用来汇总答案。...
分类:
其他好文 时间:
2015-01-17 23:25:42
阅读次数:
343
题目大意:给出一个由01形成的矩阵,问这个矩阵中最大面积的正方形和矩形,其中任意一个方块相邻的都是不同的格子。
思路:其实吧所有(i + j)&1的位置上的数字异或一下,就变成都是0或者都是1的最大正方形和矩形了。第一问就是水DP,第二问可以单调栈或者悬线。都很好写。
CODE:
#include
#include
#include
#include
#defin...
分类:
其他好文 时间:
2015-01-14 09:51:02
阅读次数:
170
题目大意:给出一棵有根树,n组询问,每一组询问给出树上的一些关键点,问割掉一些边使得根与这些点不联通的最小花费是多少。总询问的点不超过O(n)。
思路:基础思路是每一次询问做一次O(n)的DP,这本来已经够快了,但是有很多询问,这样做就n^2了。注意到所有询问的点加起来不超过O(n),也就是说每次询问的点可能很少。那么我们为何要将所有点扫一次?只需要将询问的点重新建树,然后跑树形DP,这...
分类:
其他好文 时间:
2015-01-08 09:40:04
阅读次数:
480
题目大意:给定一棵树,m次询问,每次给出k个关键点,询问这k个点之间的两两距离和、最小距离和最大距离
n
处理方法同2286 消耗战 地址见 http://blog.csdn.net/popoqqq/article/details/42493725
这个题的DP有些麻烦 因此我把要处理的节点单独拎出来做的DP 具体状态和转移见代码
#include
#includ...
分类:
其他好文 时间:
2015-01-07 18:50:04
阅读次数:
204