
数据结构--可持久化数据结构
ez_yww
这个作者很懒,什么都没留下…
展开
-
HDU 4729 题解
有一棵树,给你边的容量。每次给你s,t,k,a,b,求s到t的最大流。k是总预算,a是加一条边的费用(容量为1),b是扩充一条边的费用。原创 2016-07-07 11:21:24 · 395 阅读 · 0 评论 -
HDU 4348 题解
给你n个数,a1~an,你需要实现一下四种操作: 1.C l r d:时间+1,把al~ar全部加上d。 2.Q l r:查询al~ar的和。 3.H l r t:查询在时间t时al~ar的和。 4.B r:返回时间t。原创 2016-07-07 11:29:19 · 309 阅读 · 0 评论 -
BZOJ 3932(CQOI 2015) 题解
实现一个查询系统。原创 2016-07-07 15:56:12 · 279 阅读 · 0 评论 -
【XSY1098】第k小 可持久化trie
题目描述 给你一个长度为nn数列aa,有mm次操作: 1 x1~x:把所有数异或xx 2 x2~x:把所有数与xx 3 x3~x:把所有数或xx 4 l r k4~l~r~k:求al…ara_l\ldots a_r的第kk小值。 n,m≤50000,0≤x,ai<231n,m\leq 50000,0\leq x,a_i<2^{31}题解 如果只有查询操作,可以用可持久化trie原创 2017-10-07 21:35:09 · 243 阅读 · 0 评论 -
【CF768G】The Winds of Winter 可持久化线段树 DFS序
题目大意 给定一棵nn个点的树,对于树上每个结点,将它删去,然后可以将得到的森林中任意一个点与其父亲断开并连接到另一颗树上,对每一个点求出森林中所有树sizesize最大值的最小值。 n≤100000n\leq 100000题解 首先用DFS序+可持久化线段树求出删掉这个点后剩下的联通块的大小的最大值maxmax、次大值secsec、最小值minmin。这里要维护两棵可持久化线段树,一棵是DF原创 2017-10-19 19:14:06 · 424 阅读 · 0 评论 -
【XSY2528】道路建设 LCT 可持久化线段树
题目描述 给你一个nn个点mm条边图,qq个询问,每次问你边权在[l,r][l,r]之间的边组成的最小生成树(森林)的边权和。强制在线。 n,m,q≤100000n,m,q\leq 100000题解 考虑离线做法。从大到小加边,用LCT维护当前的最小生成树。维护一棵线段树,第ii个位置表示当前的最小生成树中边权为ii的边的权值和。当一条边被加入时就在对应位置加上边权,删掉时就减掉边权。假设已经原创 2017-10-05 16:51:18 · 497 阅读 · 0 评论 -
【XSY2720】区间第k小 整体二分 可持久化线段树
题目描述 给你你个序列,每次求区间第kk小的数。 本题中,如果一个数在询问区间中出现了超过ww次,那么就把这个数视为nn。 强制在线。 n≤100000,ain,w≤nn\leq 100000,a_i 题解 考虑整体二分。 先看看离线要怎么做。 现在我们要计算每个数对每个区间的贡献。 对于每个询问区间和每种数,让这个区间最右边ww个数对这个询问原创 2018-01-14 20:52:02 · 335 阅读 · 0 评论 -
【XSY2732】Decalcomania 可持久化线段树 分治
题目描述 有一个陶瓷瓶周围有nn个可以印花的位置。第ii个与第i+1i+1个位置之间的距离为did_i,在第ii个位置印图案要tit_i秒。 机器刚开始在00号位置,可以以11单位长度每秒的速度移动。 一个位置只能印一个图案。 现在有mm秒,问你最多能印几个图案。 保证时间不足以绕陶瓷瓶一圈。 n≤100000n\leq 100000 题解 肯定是先原创 2018-01-23 16:41:48 · 489 阅读 · 0 评论