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

浙公网安备 33010602011771号