
线段树
Rayment_cc
++Rp
展开
-
HDU-4747 Mex
Problem大意就是,给你一个数列,定义某个函数mex(l,r)表示在数列的第l个和第r个之间没有出现过的最小自然数。要求的就是对于这个数列的∑i≤j≤ni,j=1mex(i,j)∑i,j=1i≤j≤nmex(i,j)\sum_{i,j=1}^{i\leq j\leq n}mex(i,j)hdu链接 Sample Input 3 0 1 3 5 1 0 2 0 1 0 Sa...原创 2017-08-18 00:29:51 · 1652 阅读 · 0 评论 -
BZOJ 4373 算术天才⑨与等差数列
ProblemBZOJSolution为什么算gcd?我不会证。。其实是懒得维护那么多数组我们可以用hash来完成这个匹配操作,这个hash函数的要求很严格,它要满足这么3点:根据给定的a1,d,lena1,d,lena_1,d,len,可以在O(1)O(1)O(1)或O(logn)O(logn)O(\log n)的级别上出解与顺序无关满足区间加法我想到的是用方差...原创 2018-07-25 16:59:47 · 422 阅读 · 0 评论 -
51nod1462 树据结构
Problem51nodSolution第一想法是链剖+线段树好像可以做,只不过细节有点多。不过好像还可以cdq分治,但是cdq写起来还是不爽,得树剖+线段树,时间复杂度也并不优秀O(mlogmlogn2)O(m\log m\log n^2)O(mlogmlogn2)。我们考虑用线段树合并的方法来实现。由于每次操作都是从某点加到根,那么这个操作用线段树合并很好搞。考虑把线段树的的区间搞...原创 2018-10-16 20:02:33 · 273 阅读 · 0 评论 -
Codeforces413E Maze 2D加强版
ProblemCodeforcesn≤5,m≤2×105,q≤5×104n\leq 5,m\leq 2\times10^5,q\leq 5\times 10^4n≤5,m≤2×105,q≤5×104要求支持修改某个格子的可走状态。Solution感觉想法很新奇的一道题,但是后来boshi告诉我这是动态dp的套路题……所以就当是动态dp入门题了吧我们用一个n2n^2n2的矩阵来代表一个区...原创 2018-10-10 17:33:54 · 282 阅读 · 1 评论 -
Codeforces452F Permutation
ProblemCodeforces给你一个长度为n(n≤3∗105)n(n\leq 3*10^5)n(n≤3∗105)的排列,问你存不存在i<j<ki<j<ki<j<k使得aj−ai=ak−aia_j-a_i=a_k-a_iaj−ai=ak−ai。Solution一道很有意思的题目。。我做的时候思路从fft到线段树...原创 2018-11-02 10:57:18 · 473 阅读 · 0 评论 -
BZOJ4025 二分图
ProblemBZOJSolution关于二分图的判定,我们可以考虑原图的一个生成树,然后对于所有非树边,我们统计一下奇环个数即可然后可以用时间线段树,带权并查集维护一下路径上的点的个数,时间复杂度是O(mlogTlogn)O(m\log T\log n)O(mlogTlogn)也可以用lct维护时间最大生成树,注意一下细节即可,时间复杂度是O(mlogn)O(m\log n)O(...原创 2018-12-05 20:45:55 · 280 阅读 · 0 评论 -
一个简单的区间问题
Problem徐寅展论文里的题Solution为了叙述方便,不妨称题目中初始给出的赋值操作为第一类操作,赋值操作因为会直接覆盖前面操作的贡献,所以有一定的时间作用区间,那么按时间作用区间处理后得到新的操作,不妨称之为第二类操作。考虑用线段树先模拟一遍,一个标记会把原来在它子树中的操作无效化,记得下推标记时要把标记分裂。但是这样的操作数就达到了O(mlogn)O(m\log n)O(mlo...原创 2018-12-21 22:44:39 · 398 阅读 · 0 评论 -
BZOJ2080 POI2010 Railway
ProblemBZOJ数据范围为10510^5105的双栈排序。Solution为了方便讲述,令L[i]L[i]L[i]表示比aia_iai小的最靠右的位置。那么对于所有的i&lt;j&lt;L[i]i&lt;j&lt;L[i]i<j<L[i]且aj&gt;aia_j&gt;a_iaj>ai,它们显然都不能放在同一个栈...原创 2019-01-23 20:11:42 · 378 阅读 · 0 评论 -
BZOJ5259 CERC2017 Intrinsic Interval
ProblemBZOJSolution队长:这不是WC上讲的析合树吗?我(懵逼):……?有一个性质,如果有两个连续区间交叉了,那么它们的交集一定也是连续区间。因为如果它不是,那么中间一定是缺了一个元素,而这两个区间不可能同时拥有这个缺少的元素。那么对于一个询问,包含它的最短的连续区间,必然是从询问的 rrr 端点开始,能包含且 lll 最大的区间。直接做有点无从下手,把连续区间的定...原创 2019-03-17 21:03:43 · 347 阅读 · 0 评论 -
Codeforces 700E Cool Slogans
ProblemCodeforcesSolution先建出后缀自动机,然后我们可以按照right集合来dp。这个right集合可以用动态开点的线段树+线段树合并乱搞。然后dp部404 NOT FOUND注意一下pos的转移,hhh我调这个调了40minCode#include &amp;lt;cstring&amp;gt;#include &amp;lt;cstdio&amp;gt;using ...原创 2018-06-26 17:36:31 · 489 阅读 · 0 评论 -
LOJ6435 PKUSC2018星际穿越
ProblemlojSolution一个显而易见的结论,对于一个xi,要到达1号节点的最优路径只有第一步可能往右走,后面的步必定是往左走。 那么我们可以dp出整个右边可以走到的最左边的位置mn[i],mn[i]显然小于i,而且如果这个最优位置不是出自i本身,那么也就意味着要往右走一步,再往左走。 先dp出最优的位置,然后i就继承mn[i]的答案,做一个区间修改即可,可以用主席树实现...原创 2018-06-18 20:37:16 · 758 阅读 · 0 评论 -
线段树&&树状数组 总结
树状数组、线段树、zkw线段树总结原创 2017-10-11 20:55:29 · 568 阅读 · 0 评论 -
BZOJ4627 回转寿司 值域线段树
ProblemDescription酷爱日料的小Z经常光顾学校东门外的回转寿司店。在这里,一盘盘寿司通过传送带依次呈现在小Z眼前。不同的寿 司带给小Z的味觉感受是不一样的,我们定义小Z对每盘寿司都有一个满意度,例如小Z酷爱三文鱼,他对一盘三文 鱼寿司的满意度为10;小Z觉得金枪鱼没有什么味道,他对一盘金枪鱼寿司的满意度只有5;小Z最近看了电影“美 人鱼”,被里面的八爪鱼恶心到了,...原创 2018-02-08 09:16:00 · 348 阅读 · 0 评论 -
BZOJ 3653 谈笑风生
ProblemBZOJ 然而是权限题,如果你像蒟蒻我一样没有权限号请上洛谷~Solution据说正解是主席树??? 不管了,反正主席树常数巨大,线段树虽然暴力好歹也能卡过去,而且这题数据还比较水。 其实是我不会打主席树 法一 显然,分两种情况,若b是a的祖先,那么贡献就是sz[a]-1,而若b在a的子树中,则贡献为sz[b]-1。 第一种情况很好解决,考虑第二种情况。 ...原创 2018-03-19 20:40:03 · 277 阅读 · 0 评论 -
BZOJ 3832 POI2014 Rally
ProblemBZOJ又是令人窒息的权限题 洛谷Solution感觉最近好像做了一些思路很神的神题。。 之前做一道题,看了好久才发现是线段树…… 本以为这个在图上总不是线段树了吧,结果一看题解又是线段树 我开始怀疑我到底有没有学过线段树了先引入超级源汇点,那么最长的路径就是源汇点之间的路径了,我们将图进行正反向分别dp出到源/汇的最长路径。不妨用f[x]表示从源点到x的...原创 2018-03-29 20:26:13 · 257 阅读 · 0 评论 -
BZOJ 4552 TJOI2016 HEOI2016排序
ProblemBZOJSolution据说暴力分挺多的??由于是个排列,我们就可以二分答案,然后我们的问题就转化为了,判断询问的pos位与当前的mid值的大小关系。 把序列转化为01序列,那么我们在转移的时候,如果是升序排列,0就在左方,1在右方,降序排列是类似的操作,所以我们就只需要查询区间内1的个数,修改区间的数字即可。最后查询pos位是1还是0。 注意每次建树时要重置la...原创 2018-04-13 13:30:34 · 197 阅读 · 0 评论 -
BZOJ 2752 HAOI2012高速公路
ProblemBZOJSolution前置技能:∑ri=li=(l+r)(r−l+1)/2∑i=lri=(l+r)(r−l+1)/2\sum_{i=l}^r i=(l+r)(r-l+1)/2,∑ni=1i2=n∗(n+1)∗(2∗n+1)/6∑i=1ni2=n∗(n+1)∗(2∗n+1)/6\sum_{i=1}^n i^2=n*(n+1)*(2*n+1)/6一道期望的题目,直接推公...原创 2018-05-18 23:12:56 · 228 阅读 · 0 评论 -
BZOJ3307 雨天的尾巴
ProblemBZOJ权限题 良心洛谷Solution这道题目的花呢,本来想缩先树剖(可能需要长链剖分?),再搞一个标记永久化,然后最后合并答案,不过可能会卡空间。。时间复杂度呢是O(nlog2n)O(nlog2n)O(nlog^2n) 然后boshi表示:“为什么不差分然后再自底向上合并线段树呢” 于是就做到了O(nlogn)O(nlogn)O(nlogn) 好优秀的做法qw...原创 2018-05-24 22:12:42 · 441 阅读 · 0 评论 -
UOJ 164 清华集训2015 V
ProblemUOJ 要求你支持五个操作1.区间加x2.区间减x,然后对区间做ai=max(ai,0)ai=max(ai,0)a_i=max(a_i,0)的操作3.区间修改成x4.单点询问当前值5.单点询问历史最大值Solution吉司机线段树的一道题,可以参见2016年吉如一的论文我们用线段树维护两个东西,一个是当前,一个是历史,每个用结构体来描述,(x,y)表...原创 2018-06-21 10:56:05 · 321 阅读 · 0 评论 -
UOJ295 ZJOI2017 线段树
ProblemUOJSolution问题的关键在于如何定位广义线段树上的一段区间 [l,r][l,r][l,r] 所对应的节点,可以考虑zkw线段树的方法,先找到 l−1l-1l−1 和 r+1r+1r+1 所对应的节点,并且向上跳直到它们的lca处,l−1l-1l−1 祖先的所有右儿子以及 r−1r-1r−1 祖先的所有左儿子都是对应的节点。需要注意的是为了提取 l=1l=1l=1 或 r...原创 2019-06-19 13:01:10 · 298 阅读 · 0 评论