随笔分类 -  数据结构--线段树

摘要:"传送门" 第一步转化,令 $q[p[i]]=i$,那么题目变成: 有一些 $q[a[i]] using namespace std; typedef long long ll; const int maxn(5e5 + 5); int n, a[maxn], w[maxn], vis[maxn], 阅读全文
posted @ 2019-02-20 17:54 Cyhlnj 阅读(219) 评论(0) 推荐(0)
摘要:"传送门" 首先可以设 $f[l][r]$ 表示 $[l,r]$ 的答案 设 $x$ 为区间 $[l,r]$ 的最大值的位置,那么 $f[l][r] = min(f[l][x 1]+h[x]\times (r x+1),f[x+1][r]+h[x]\times (x l+1))$ 这样的 $dp$ 阅读全文
posted @ 2019-02-01 10:48 Cyhlnj 阅读(318) 评论(0) 推荐(2)
摘要:"传送门" 首先可以有一个平方复杂度的 $DP$ 设 $f_{i,j}$ 表示前面 $i$ 个小格,高度为 $j$ 的最大答案 令 $h_i$ 表示隔板 $i$ 的高度 当 $j\le h_i$ 时,转移到 $f_{i+1,k},k\in [0,h_i]$ 否则 $f{i,j}\rightarrow 阅读全文
posted @ 2019-01-24 21:58 Cyhlnj 阅读(363) 评论(0) 推荐(1)
摘要:"传送门" 后缀平衡树模板题 用平衡树维护每一个后缀的排名 关键在于查询两个后缀的大小 可以用二分加hash,复杂度 $log^2n$ 插入 或者: 每次前面插入一个字符,先比较两个后缀第一个字符的大小 而后面的大小我们已经在平衡树上维护好了 像这样分配权值 给树上每个子树一个实数权值区间 $[l, 阅读全文
posted @ 2019-01-12 16:47 Cyhlnj 阅读(284) 评论(0) 推荐(0)
摘要:"传送门" 这个题目实际上可以建立出树,然后重链剖分维护一条链的凸包 然后离线询问排序斜率做到 $nlog^2n$,或者点分治+平衡树也行 但是这个题目卡空间,数组一不小心就爆了~~卡一卡也能过~~ 考虑其它空间常数小并且又好写的做法 根据一般的二进制分组的方法,每次这个块满了就合并儿子的凸包 这样 阅读全文
posted @ 2019-01-11 12:53 Cyhlnj 阅读(488) 评论(1) 推荐(0)
摘要:"传送门" 首先二分答案 $mid$,问题变成求区间 $[l mid,r+mid]$ 在该年份的不同类型个数为 $k$ 关于年份的限制可以离线下来 现在的问题就是区间数颜色,一个套路就是维护每个颜色的后继,即这个位置颜色的下一个位置 那么,如果有 $( \infty,l mid 1]$ 的某一个值大 阅读全文
posted @ 2019-01-11 09:02 Cyhlnj 阅读(215) 评论(0) 推荐(0)
摘要:"传送门" 考虑用 $segment~tree~beats$ 那一套理论,维护区间最小值 $mn$ 和严格次小值 $se$ 那么可以直接 $mlog^2n$ 维护前三个操作 考虑维护历史最小值,先维护历史最小标记 写了写发现 $max$ 那个修改不好操作 对于 $max$ 操作来说,只会在 $mn 阅读全文
posted @ 2019-01-10 18:52 Cyhlnj 阅读(383) 评论(0) 推荐(0)
摘要:"传送门" 看到要求两棵树的 $lca$ 深度不太好操作 考虑枚举第二棵树的 $lca$,这样剩下的都是只和第一棵树有关的 而注意到 $dis(x,y)=d(x)+d(y) 2d(lca(x,y))$ 那么 $d(x)+d(y) d(lca(x,y))=\frac{1}{2}(dis(x,y)+d( 阅读全文
posted @ 2019-01-06 17:56 Cyhlnj 阅读(179) 评论(0) 推荐(0)
摘要:"传送门" Sol 考虑对于操作时间建立线段树,二进制分组 那么现在主要的问题就是怎么合并信息 你发现一个性质,就是每个修改只会在整个区间内增加两个端点 那么我们二进制分组可以得到每个区间内最多只有区间长度级别段,每一段的修改都是一样的 那么可以直接一层层归并上来 最后询问就是二分每一个线段树的节点 阅读全文
posted @ 2018-12-08 19:14 Cyhlnj 阅读(454) 评论(0) 推荐(1)
摘要:先套用一个线段树维护离散化之后的区间的每一段的答案 那么只要考虑怎么下面的东西即可 $$\sum_{i=1}^{n}(A\times i \ mod \ B)$$ 拆开就是 $$\sum_{i=1}^{n}A\times i B\times \sum_{i=1}^{n}\lfloor\frac{A\ 阅读全文
posted @ 2018-11-06 16:59 Cyhlnj 阅读(291) 评论(0) 推荐(0)
摘要:题意 给出一个长度为 $n$ 的字符串 $s[1]$,由小写字母组成。定义一个字符串序列 $s[1....k]$ ,满足性质:$s[i]$ 在 $s[i 1]$ $(i \ge 2)$ 中出现至少两次(位置可重叠),问最大的 $k$ 是多少,使得从 $s[1]$ 开始到 $s[k]$ 都满足这样一个 阅读全文
posted @ 2018-06-12 15:37 Cyhlnj 阅读(467) 评论(0) 推荐(0)
摘要:Sol 考场上: 这不是送$50$吗,$Q^2$递推就好了 然后,怎么又送$20$分??? $woc$,只有半个小时了,顺利没调出来只有$50$分 考后: 神$TM$一个大于号写成小于号。。。 $20$分没了 $TAT$ 正解的一种 $n$棵线段树维护每一行的前$m 1$列 再开一棵维护最后一列的情 阅读全文
posted @ 2018-03-30 14:39 Cyhlnj 阅读(159) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 线段树,维护一个长度为$20$的数组,每次合并时就是左右儿子做个卷积 区间加法 二项式展开 用$len$表示区间长度,加的$x$的贡献组合数算一下就好了 看代码就知道了 cpp include define RG register define IL inline defi 阅读全文
posted @ 2018-03-21 21:43 Cyhlnj 阅读(158) 评论(0) 推荐(0)
摘要:Sol 设$f[i][j]$表示钦定$i$建基站,建了$j$个基站的最小代价 $f[i][j]=max(f[l][j 1]+\Sigma_{t=l+1}^{i 1}$不能影响到的村庄的$w[t])+c[i]$ 二分处理出每个村庄$p$左右能影响到它的最远的基站设为$L[p], R[p]$ $l,i$ 阅读全文
posted @ 2018-03-21 21:38 Cyhlnj 阅读(185) 评论(0) 推荐(0)
摘要:题意 维护一个$01$串,一开始全部都是$0$ $3$种操作 $1.$把一个区间都变为$1$ $2.$把一个区间都变为$0$ $3.$把一个区间的所有数字翻转过来 每次操作完成之后询问区间最小的$0$的位置 $l,r define RG register define IL inline defin 阅读全文
posted @ 2018-03-21 21:28 Cyhlnj 阅读(209) 评论(0) 推荐(0)
摘要:题目 "传送门" Sol 线段树,维护斜率单增的最高点和长度 更新,以下的都是指斜率 当前点的左儿子更新上来,右儿子递归 如果右儿子的左儿子的最大值大于左儿子的 加上算出右儿子的右儿子的贡献(右儿子贡献减去右儿子的左儿子的贡献),递归右儿子的左儿子 否则,递归右儿子的右儿子 cpp include 阅读全文
posted @ 2018-03-21 21:23 Cyhlnj 阅读(155) 评论(0) 推荐(0)
摘要:题面 一张图分为两部分,左右都有$n$个节点, $A_i A_{i+1}$连边,$B_{i} B_{i+1}$连边,容量给出 有$m$对$A_i B_j$有边,容量给出 两种操作 1.修改某条$A_i A_{i+1}$的边的容量 2.询问从$A_1$到$B_n$的最大流 $n,mA_{i+1}$的边 阅读全文
posted @ 2018-03-17 17:19 Cyhlnj 阅读(138) 评论(0) 推荐(0)
摘要:题意 将一个长度为$n$的序列分为$k$段 使得总价值最大 一段区间的价值表示为区间内不同数字的个数 $n define RG register define IL inline define Fill(a, b) memset(a, b, sizeof(a)) using namespace st 阅读全文
posted @ 2018-03-17 14:43 Cyhlnj 阅读(677) 评论(0) 推荐(1)
摘要:题面 "UOJ" Sol 玄学,不会势能分析 所以 维护区间最大最小值 把开根变成区间减法 如果最大值开根后的变化量和最小值的相等,就直接打个减法$lazy$ 阅读全文
posted @ 2018-03-16 15:57 Cyhlnj 阅读(211) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 线段树维护区间$DP$ 差分,你会发现就是选一些区间,第一个值可以不一样 那么我们维护原数组左右端点是否选的情况,一共四种 注意差分数组只有$n 1$的长度,并且每个数维护的是两个相邻的原数组的数 cpp include define RG register define 阅读全文
posted @ 2018-03-15 21:50 Cyhlnj 阅读(283) 评论(0) 推荐(0)