08 2024 档案
摘要:P2617 Dynamic Rankings 题意:给定一个含有n个数的序列,求任意区间内第k小的树,或者改变某个元素的值 简单的区间k小,就是主席树,如果这道题也用主席树做,那么修改的时候就得把所有后面的线段树都修改一遍,为了更快地维护前缀信息,实用树状数组,每个主席树维护一定区间的权值线段树而不
阅读全文
摘要:P1527 [国家集训队] 矩阵乘法 题意:给你一个n×n的矩阵,不用算矩阵乘法,但是每次询问一个子矩形的第 k 小数。 整体二分的方法是,先把n*n的矩阵拍平成一维,按照值的大小排序,利用二维树状数组维护大小前[L,mid] 的值的位置的二维前缀即可 P3157 [CQOI2011] 动态逆序对
阅读全文
摘要:P3810 【模板】三维偏序(陌上花开) 题意:n个元素,每个元素有三个属性,设一个元素大于一个元素为三个属性都大于另一个属性,求每个元素大于几个元素。 CDQ分治模板题,第一维先排序,然后递归分治,具体来说是[L,R]区间,先计算[L,mid]和[mid+1,R]区间内的大小比较,然后将[L,mi
阅读全文
摘要:P3527 [POI2011] MET-Meteors 题意:给定一个序列,这个序列中每个元素的值代表了一个变量 每次将这个区间内的所有变量加或减,且每个变量都有一个上限,求第几次操作之后达到这个上限 对于一个变量,可以用简单二分实现,现在有多个变量,则可以用整体二分,solve(a,b,l,r)
阅读全文
摘要:TTM - To the moon 题意:给定区间,有区间加减操作,区间求和操作,回退版本操作 主席树的lazytag不方便下传,因为有不同版本的共用节点,pushdown之后会导致前一个版本的值也改变了 考虑持久化标记,坑比较多 修改的时候直接把这个区间的值算出来,而不是递归子节点之后pushup
阅读全文
摘要:P2633 Count on a tree 题意:给定一个树,每个点有一个权值,求两节点中第k小的点权,强制在线 主席树,处理每个点到根节点的所有点建立权值线段树,对于u到v这条路径上大小在[l,mid]中的点的数量为 q(u)+q(v)-q(lca(u,v))-q(fa[lca(u,v)]); P
阅读全文
摘要:U109895 [HDU4825]Xor Sum 题意:给定一个集合,多次询问:给出一个数求在集合里求出一个数使得两数异或结果最大 对于异或而言 一个数的高位异或结果更大那一定结果更大,考虑一种方式可以快速地把集合里的所有数一位一位地比较,那就用Trie树 P4551 最长异或路径 题意:一棵树每个
阅读全文
摘要:P2341 [USACO03FALL / HAOI2006] 受欢迎的牛 G 题意:给定一个有向图,求有几个点能够被所有的点到达。 设所有能到达某个点的点作为该点的点集,那么所有点集相同的点都在一个强连通分量里,该题求的点的点集是所有的点,每个要求的点都在一个分量里,而且该分量的出度一定为0,不然就
阅读全文
摘要:矩阵游戏 题意:给定一个01方阵,通过交换两行或两列,能否将其变为对角矩阵? 如果每一行都能有一个对应的一列,那么一定能通过交换操作变成有序的 P7368 [USACO05NOV] Asteroids G 题意:给定一个01方阵,每次将某一行或某一列的1全部变成0,若要将整个矩阵变为0,最少需要几次
阅读全文
摘要:P3733 [HAOI2017] 八纵八横 题意:给定一个动态图,求不同时候,从点1开始回到点1的路径最大的异或和 参见昨天的随笔中的结论,实际上就是建树,每加一个边,就把左节点的异或上右节点异或上边的权,用线段树分治维护一个线性基。线段树分治有一点好就是可以让一个复杂的数据结构一步一步地退回过去状
阅读全文
摘要:P4301 [CQOI2013] 新Nim游戏 题意:给定一串数列,拿走数列中的一些数,使得剩下来的一些数的所有非空子集的异或和都不为0,且拿走的数的和要最小 类似于线性代数,如果一些元素能够异或和为0,那么说明这些元素“线性相关”,所以只要留下无关的数,那么就满足题意。 采取线性基的做法,为了使得
阅读全文
摘要:P4949 最短距离 题意:给定一个n各点n条边的无向连通图 支持修改某条边的长度和查询两点之间的最短距离 利用并查集找出多出来的那条边,通过树链剖分直接维护一棵树,查询的时候只用比较一下只从树上走和从多出来的边上走就行了 P3812 【模板】线性基 题意:给定n个整数(数字可能重复)求在这些数中选
阅读全文
摘要:P5788 【模板】单调栈 题意:给定一个数列,求数列中每一个元素之后第一个大于该元素的下标 若存在一个数大于它之后的数,那么当我们在左边计算答案的话,那个较小的数不可能被统计到。 所以利用单调栈的做法,和右边的比就从右边统计,维护一个栈就行了 P6510 奶牛排队 题意:给定一个数列,求最长的连续
阅读全文
摘要:P1972 [SDOI2009] HH的项链 题意:统计区间内不同数字的种类 对于[l,r]区间内的某一种贝壳来说,只有最右边的贝壳有意义,所以将所有询问区间[l,r]按照r从小到大排序;对每一个数字记录上一次出现的位置 利用线段树完成单点添加和区间查询 P3567 [POI2014] KUR-Co
阅读全文
摘要:P6136 【模板】普通平衡树(数据加强版) 题意: 1,插入一个数; 2,删除一个数 3,查询一个数的排名 4,查询第x个数 5,查询x的前驱和后继 重点在于分裂split和合并merge操作: 1:分裂为X[0,x],Y[x+1,n],后rt=merge(X,x,Y) 2:分裂为X[0,x-1]
阅读全文