随笔分类 -  数据结构 并查集

摘要:【题目】D. Best Edge Weight 【题意】给定n个点m条边的带边权无向连通图,对每条边求最大边权,满足其他边权不变的前提下图的任意最小生成树都经过它。n,m<=2*10^5,1<=wi<=10^9。 【算法】最小生成树+倍增LCA+并查集 【题解】首先求出图的一个最小生成树M,则所有边 阅读全文
posted @ 2018-03-07 22:08 ONION_CYC 阅读(405) 评论(0) 推荐(0)
摘要:【题目】F. Imbalance Value of a Tree 【题意】给定n个点的带点权树,求所有路径极差的和。n,ai<=10^6 【算法】并查集 【题解】先计算最大值的和,按点权从小到大排序,每个点x和相邻的已访问点的点集形成的路径的最大值都是a[x],因为已访问过的点点权较小,然后用并查集 阅读全文
posted @ 2018-01-15 14:09 ONION_CYC 阅读(429) 评论(0) 推荐(0)
摘要:【题目】E. Segments Removal 【题意】给定n个数字,每次操作删除最长的连续相同数字(等长删最左),求全部删完的最少次数。n<=2*10^6,1<=ai<=10^9。 【算法】并查集+堆 【题解】将序列的相同数字段压缩,全部插入堆。那么每次操作删除堆顶,并尝试合并堆顶的前驱和后继,能 阅读全文
posted @ 2017-12-18 14:00 ONION_CYC 阅读(547) 评论(0) 推荐(0)
摘要:【题意】给定n个点的树,从无到有加边,过程中动态询问当前图某条边两端连通点数的乘积,n<=10^5。 【算法】线段树合并+并查集 (||LCT(LCT维护子树信息 LCT维护子树信息(+启发式合并))——嗷嗷待补) 【题解】先将所有边离线加入计算dfs序(套路,强制固定原树形态) 对于一条边(u,v 阅读全文
posted @ 2017-10-24 21:56 ONION_CYC 阅读(327) 评论(0) 推荐(1)
摘要:【题意】给定n个元素,m次给一段区间染色为i,求最终颜色。 【算法】并查集 【题解】因为一个点只受最后一次染色影响,所以倒过来每次将染色区间用并查集合并,父亲指向最右边的点。 细节: 1.fa[n+1]=n+1!!!界外点要赋值为自身!!! 2.swap(l,r),涉及双端点的题都要注意。 #inc 阅读全文
posted @ 2017-10-10 21:10 ONION_CYC 阅读(352) 评论(0) 推荐(0)
摘要:【算法】线段树||树状数组&&并查集 【题解】修改必须暴力单点修改,然后利用标记区间查询。 优化:一个数经过不断开方很快就会变成1,所以维护区间最大值。 修改时访问到的子树最大值<=1时,该区间就不必修改。 #include<cstdio> #include<cmath> #include<algo 阅读全文
posted @ 2017-09-23 07:35 ONION_CYC 阅读(213) 评论(0) 推荐(0)
摘要:【算法】并查集+平衡树+数学+扫描线 【题解】 经典曼哈顿距离转切比雪夫距离。 曼哈顿距离:S=|x1-x2|+|y1-y2|<=c 即:max(x1-x2+y1-y2,x1-x2-y1+y2,-x1+x2+y1-y2,-x1+x2-y1+y2) 令X1=x1+y1,Y1=x1-y1,则转化为 切比 阅读全文
posted @ 2017-09-15 17:04 ONION_CYC 阅读(311) 评论(0) 推荐(0)
摘要:【算法】最短路树+(树链剖分+线段树)||最短路树+并查集 【题解】 两种方法的思想是一样的,首先题目限制了最短路树唯一。 那么建出最短路树后,就是询问对于每个点断掉父边后重新找路径的最小值,其它路径只能是这个点和其子树节点通过非树边到达非子树节点。 这样考虑很难统计,换个角度考虑每条非树边的影响。 阅读全文
posted @ 2017-08-31 08:48 ONION_CYC 阅读(404) 评论(0) 推荐(0)
摘要:【平衡树】★平衡树 by onion_cyc 【莫队算法】 问题:给定长度为n的序列和m个区间询问,支持快速增减相邻元素维护区间信息。 将询问按左端点分块,块大小为$Q=\frac{n}{\sqrt m}$,块内按右端点排序。 然后依次回答询问,需要O(1)从(l,r)转移到(l,r+1),(l,r 阅读全文
posted @ 2017-03-25 17:10 ONION_CYC 阅读(849) 评论(0) 推荐(0)
摘要:【题意】w组数据,给定n和m,给出m段区间[s,t](1<=s<=t<=n)的数字和,求是否矛盾。n<100,m<1000,w<100。 【算法】带权并查集 【题解】由于存在负数,唯一判断信息合法性的途径只有多个已知区间能组成一个已知大区间。 假设有n+1个点0~n表示sum[0]~sum[n],对 阅读全文
posted @ 2016-12-29 20:51 ONION_CYC 阅读(691) 评论(0) 推荐(1)
摘要:【算法】(强连通分量)并查集 【题解】 1.用tarjan计算强连通分量并缩点,在新图中找入度为0的点的个数就是答案。 但是,会爆内存(题目内存限制64MB)。 2.用并查集,最后从1到n统计fa[i]==i的数量即是答案。(n个点n条有向边,连通子图个数就是答案) (tarjan) #includ 阅读全文
posted @ 2016-09-23 19:26 ONION_CYC 阅读(252) 评论(0) 推荐(0)
摘要:【算法】 【算法】网络流 【算法】树 【算法】数学 ————【专题】生成树计数(矩阵树定理) ————【专题】计数问题(排列组合,容斥原理,卡特兰数) ————【算法专题】卡特兰数(计数数列) ————【专题】数论 ————【专题】概率和期望 【算法】动态规划 【算法】数据结构 ————【专题】平衡 阅读全文
posted @ 2016-08-10 21:08 ONION_CYC 阅读(2144) 评论(0) 推荐(6)