随笔分类 - 数据结构 -- LCA
摘要:倍增$ST$表 预处理复杂度 $O(n \log n)$ 单次查询复杂度 $O(\log n)$ $RMQ$倍增的思想。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath>
        阅读全文
                
摘要:link 题目大意 有一颗树,且每次询问包含$k$个特殊节点,问每个特殊节点能占领几个节点 试题分析 到底是道德的沦丧,还是人性的扭曲。 其实发现数据范围$\sum_{i=1}^q m_i \leq 3\times 10^5$想到了什么 虚树,所以应该怎么用虚树优化。 先将虚树建出来,这是基本操作,
        阅读全文
                
摘要:link 题目大意 若有一颗带边权的树,且每次询问$k$个节点,问$k$个节点均不与1号节点相连的最小边权。 试题分析 考虑暴力$dp$,设$dp_i$为处理好i的子树的最小边权,我们定义$val_i$为从$i$到根的最小边权,则$dp_i=min(\sum dp_v,val_i)$。 但是发现其实
        阅读全文
                
摘要:link 其实可以用$sum(i,j)$表示从$i$到$1$的$k$次方的值,然后就是$lca$的基本操作 注意,能一起干的事情就一起搞,要不会超时 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #
        阅读全文
                
摘要:题目传送门 W神爷的题解 数论 小 M 的算式 【问题描述】 小 M 在做数学作业的时候遇到了一个有趣的问题:有一个长度为 n 的数字 串 S,小 M 需要在数字之间填入若干个“+”和恰好一个“=”,使其成为一个 合法的等式。如对于 S=“2349”,可以通过添加 2个“+”和 1 个“=”成为 “
        阅读全文
                
摘要:link 这是一道假的图论 思维难度很低,代码量偏高 就是一道板子+二分 树上差分就AC了 注意卡常即可 二分枚举答案x,为时间长度 将每一个长度大于x的计划链长记录下来(有几个,总需要减少多少长度) 在树上跑一跑即可 树上差分就将u,vv权值+1,lca(u,v)-2即可 dp[i]:为子树权值和
        阅读全文
                
摘要:题目传送门 因为要求最长集合线段中的最小值所以果断使用最大生成树,因为给定的是张图,无法确定唯一路径,而在树上就是了 再去求相当于两点分别为端点的链上最小值 以前写过树上路径,详情请点击(T1) 所以这时就成了一道板子题了 注意:这或许不仅仅只有一棵树,遍历找没有访问过的点重新当根即可。
        阅读全文
                
摘要:题目链接 先求当前图中的最小生成树,再将没有选的边一一安放(放完一个就卸下),这样每次就形成一个环,再求这个环除了它以外的最短权值,这样就会想到lca,因为树的路径是唯一的,并且时间也不会超时,再将原答案加上这条边的权值减去最大的环上权值的最小值即为答案 调了一下午,哎~,板子打WA了,一个1<<i
        阅读全文
                
摘要:题目:链接: https://pan.baidu.com/s/163ycV64ioy7uML7AvRDTGw 密码: p86i T1: 倍增求LCA,minn数组记录最小值 #include<iostream> #include<cstdio> #include<cstring> #include<
        阅读全文
                
                    
                
浙公网安备 33010602011771号