随笔分类 -  数据结构-单调栈

摘要:bzoj-1345 Baltic-2007 序列问题 题目大意:对于一个给定的序列a1,…,an,我们对它进行一个操作reduce(i),该操作将数列中的元素ai和ai+1用一个元素max(ai,ai+1)替代,这样得到一个比原来序列短的新序列。这一操作的代价是max(ai,ai+1)。进行n-1次 阅读全文
posted @ 2019-06-20 20:54 JZYshuraK_彧 阅读(166) 评论(0) 推荐(0)
摘要:3083. 「GXOI / GZOI2019」与或和 题目大意 给定一个$N\times N$的矩阵,求所有子矩阵的$AND(\&)$之和、$OR(|)$之和。 数据范围 $1\le N\le 10^3$,$val_{(i,j)} \le 2^{31} 1$。 题解 一眼题。 对于这种位运算的题,题 阅读全文
posted @ 2019-04-23 18:57 JZYshuraK_彧 阅读(224) 评论(0) 推荐(0)
摘要:影魔 bzoj-4826 Hnoi-2017 题目大意:给定一个$n$个数的序列$a$,求满足一下情况的点对个数: 注释:$1\le n,m\le 2\cdot 10^5$,$1\le p1,p2\le 1000$。 想法: 我们先用单调栈求出一个数左边第一个比它大的,和右边第一个比它大的。$l_i 阅读全文
posted @ 2019-01-08 14:48 JZYshuraK_彧 阅读(225) 评论(0) 推荐(0)
摘要:SvT bzoj-3879 题目大意:给定一个字符串。每次询问给定$t$个位置,求两两位置开头的后缀的$LCP$之和。 注释:$1\le length\le 5\cdot 10^5$,$\sum t\le 3\cdot 10^6$。 想法: 不难想到构建后缀数组。 进而我们的问题就转化成了给定序列上 阅读全文
posted @ 2018-12-17 16:32 JZYshuraK_彧 阅读(218) 评论(0) 推荐(0)
摘要:差异 bzoj-3238 Ahoi-2013 题目大意:求任意两个后缀之间的$LCP$的和。 注释:$1\le length \le 5\cdot 10^5$。 想法: 两个后缀之间的$LCP$和显然不好求。 我们先构建后缀数组。 那么任意两个后缀之间的$LCP$之和就是所有$sa$数组上所有区间的 阅读全文
posted @ 2018-12-17 16:05 JZYshuraK_彧 阅读(237) 评论(0) 推荐(0)
摘要:Blocks bzoj-2086 Poi-2010 题目大意:题目链接。 注释:略。 想法:首先,不难发现,如果连续的一段数的平均值不小于输入的k的话,这段数是满足题意的。 所以,我们再次简化一下:将每个数都减去k,即求极大区间,使得区间和为正。 将所有数的前缀和自尾至头压进单调栈,然后左指针遍历1 阅读全文
posted @ 2018-08-05 09:31 JZYshuraK_彧 阅读(170) 评论(0) 推荐(1)
摘要:Bad Hair Day bzoj-1660 Usaco-2006 Nov 题目大意:n头牛站成一列,每头牛向后看。f[i]表示第i头牛到第n头牛之间有多少牛,使得这些牛都比i矮,且中间没有比i高的牛阻隔。求$\sum\limits_{i=1}nf[i]$。 注释:$1\le n\le 8\cdot 阅读全文
posted @ 2018-07-26 22:45 JZYshuraK_彧 阅读(197) 评论(0) 推荐(0)
摘要:水平可见直线 bzoj-1007 HNOI-2008 题目大意:给你n条直线,为你从上往下看能看见多少跳直线。 注释:能看见一条直线,当且仅当这条直线上存在一条长度>0的线段使得这条线段上方没有其他直线,$1\le n 5\cdot 10^4$。 想法:神题qwq。看见网上的做法突然有一种学计算几何 阅读全文
posted @ 2018-05-01 22:07 JZYshuraK_彧 阅读(233) 评论(0) 推荐(0)
摘要:Pla(jdoj1006) 题目大意:给你n个矩形,并排放在一起,你的目的是将所有的矩形全部染色。你每次染的形状为一个矩形,问:最少需要染多少次? 注释:n<=10^6,wi , hi<=2^31-1,其中,wi和hi分别是矩形的宽和高。 想法:第一想法是贪心,显然是不对的。在此,我们介绍一种数据结 阅读全文
posted @ 2017-11-17 19:19 JZYshuraK_彧 阅读(329) 评论(0) 推荐(0)