随笔分类 - 数据结构
摘要:[BZOJ 4523] [CQOI2016]路由表(Trie+单调栈) 题面 题面过长,略。 分析 对于添加的每个路由表,我们只把掩码那么长的前缀加入01Trie,然后在结尾位置标记插入时间. 查询时我们先找到查询地址在Trie上对应的一条路径。对于路径上的两个串结尾$x,y$,若$x$是$y$的祖
阅读全文
摘要:[Codeforces 603E]Pastoral Oddities(LCT) 题面 图中有n个孤立点,依次向图中加入m条带权无向边。使得图中每个点的度数均为奇数的边集是合法的,其权值定义为集合中的最大边权。每次加入边后,询问权值最小的合法边集的权值,不存在合法边集时输出−1。 $n \leq 10
阅读全文
摘要:[BZOJ 2959] 长跑(LCT+并查集) 题面 为了让同学们更好地监督自己,学校推行了刷卡机制。 学校中有n个地点,用1到n的整数表示,每个地点设有若干个刷卡机。 有以下三类事件: 1、修建了一条连接A地点和B地点的跑道。 2、A点的刷卡机台数变为了B。 3、进行了一次长跑。问一个同学从A出发
阅读全文
摘要:[BZOJ2594] [WC2006]水管局长(Kruskal+LCT) 题面 SC省MY市有着庞大的地下水管网络,嘟嘟是MY市的水管局长(就是管水管的啦),嘟嘟作为水管局长的工作就是:每天供水公司可能要将一定量的水从x处送往y处,嘟嘟需要为供水公司找到一条从A至B的水管的路径,接着通过信息化的控制
阅读全文
摘要:[BZOJ 3117] [NOI1999]内存分配(STL) 题面 内存是计算机重要的资源之一,程序运行的过程中必须对内存进行分配。 经典的内存分配过程是这样进行的: 1.内存以内存单元为基本单位,每个内存单元用一个固定的整数作为标识,称为地址。地址从0开始连续排列,地址相邻的内存单元被认为是逻辑上
阅读全文
摘要:[Codeforces 266E]More Queries to Array...(线段树+二项式定理) 题面 维护一个长度为$n$的序列$a$,$m$个操作 1. 区间赋值为$x$ 2. 查询$\sum_{i=l}^r a_i(i l+1)^k \mod 10^9+7$ $n,m \leq 10^
阅读全文
摘要:[BZOJ 2002] [HNOI2010]弹飞绵羊(Link Cut Tree) 题面 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第
阅读全文
摘要:[BJOI2014]大融合(Link Cut Tree) 题面 给出一棵树,动态加边,动态查询通过每条边的简单路径数量。 分析 通过每条边的简单路径数量显然等于边两侧节点x,y子树大小的乘积。 我们知道裸的LCT只能维护链的信息,那么怎么维护子树大小呢?我们只需要对于节点x维护x的所有虚儿子的子树大
阅读全文
摘要:[BZOJ 1535] [Luogu 3426]SZA Template (KMP+fail树+双向链表) 题面 Byteasar 想在墙上涂一段很长的字符,他为了做这件事从字符的前面一段中截取了一段作为模版. 然后将模版重复喷涂到相应的位置后就得到了他想要的字符序列.一个字符可以被喷涂很多次,但是
阅读全文
摘要:[BZOJ 3509] [CodeChef] COUNTARI (FFT+分块) 题面 给出一个长度为n的数组,问有多少三元组$(i,j,k)$满足$i include include include define maxn 200000 using namespace std; typedef l
阅读全文
摘要:[BZOJ4569] [Luogu 3295] [SCOI2016]萌萌哒(并查集+倍增) 题面 有一个n位的十进制数a(无前导0),给出m条限制,每条限制$(l_1,r_1,l_2,r_2)(保证r_1 l_1=r_2 l_2)$表示这个数的第$[l_1,r_1]$位与$[l_2,r_2]$位相同
阅读全文
摘要:[BZOJ3133] [Baltic2013]ballmachine(树上倍增+堆) 题面 有一个装球机器,构造可以看作是一棵树。有下面两种操作: 从根放入一个球,只要下方有空位,球会沿着树滚下。如果同时有多个点可以走,那么会选择编号最小的节点所在路径的方向。比如依次在树根 放2个球,第一个球会落到
阅读全文
摘要:[HDU 3712] Fiolki (带边权并查集+启发式合并) 题面 化学家吉丽想要配置一种神奇的药水来拯救世界。 吉丽有n种不同的液体物质,和n个药瓶(均从1到n编号)。初始时,第i个瓶内装着g[i]克的第i种物质。吉丽需要执行一定的步骤来配置药水,第i个步骤是将第a[i]个瓶子内的所有液体倒入
阅读全文
摘要:[BZOJ 2006] [NOI 2010]超级钢琴(贪心+ST表+堆) 题面 给出一个长度为n的序列,选k段长度在L到R之间的区间,一个区间的值等于区间内所有元素之的和,使得k个区间的值之和最大。区间可以相交或包含,但一个区间只能被选1次. $n,k,L,R \leq 5 \times 10^5$
阅读全文
摘要:[BZOJ 3123] [SDOI 2013]森林(可持久化线段树+启发式合并) 题面 给出一个n个节点m条边的森林,每个节点都有一个权值。有两种操作: 1. Q x y k查询点x到点y路径上所有的权值中,第k小的权值是多少。此操作保证点x和点y连通,同时这两个节点的路径上至少有k个点。 2. L
阅读全文
摘要:[BZOJ 4668]冷战(并查集+启发式合并) 题面 一开始有n个点,动态加边,同时查询u,v最早什么时候联通。强制在线 分析 用并查集维护连通性,每个点x还要另外记录tim[x],表示x什么时间与父亲相连。查询u,v的时候显然可以看出,答案就是u到v路径上的点tim的最大值。所以像求lca一样暴
阅读全文
摘要:[BZOJ 4025]二分图(线段树分治+带边权并查集) 题面 给出一个n个点m条边的图,每条边会在时间s到t出现,问每个时间的图是否为一个二分图 $n,m,\max(t_i) \leq 10^5$ 分析 我们知道 一个图是二分图的充要条件是图中不存在奇环 。于是可以用边带权并查集维护两点间距离的奇
阅读全文
摘要:[Codeforces 1208D]Restore Permutation (树状数组) 题面 有一个长度为n的排列a。对于每个元素i,$s_i$表示$\sum_{j=1,a_j include include include include define maxn 200000 using nam
阅读全文
摘要:[BZOJ4182]Shopping (点分治+树上多重背包+单调队列优化) 题面 马上就是小苗的生日了,为了给小苗准备礼物,小葱兴冲冲地来到了商店街。商店街有n个商店,并且它们之间的道路构成了一颗树的形状。 第i个商店只卖第i种物品,小苗对于这种物品的喜爱度是wi,物品的价格为ci,物品的库存是d
阅读全文
摘要:[APIO2019] [LOJ 3145] 桥梁(分块+并查集)(有详细注释) 题面 略 分析 考试的时候就感觉子任务4是突破口,结果却写了个Kruskal重构树,然后一直想怎么在线用数据结构维护 实际上是离线算法。考虑只有查询的时候。我们可以离线对查询的权值从大到小排序,边也按边权从大到小排序,然
阅读全文

浙公网安备 33010602011771号