![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树上启发式合并
W.A.R
热爱敲代码(划掉)的低级代码狗缓慢level up ing!!!!
展开
-
【牛客7872 J】树上启发式合并
【牛客7872 J】树上启发式合并 题意 树上启发式合并,求有多少点对满足,这两个点x和y相互之间不是祖先和后代的关系 同时满足val[x]+val[y]=2∗val[lca(x,y)]val[x]+val[y]=2 * val[ lca(x,y) ]val[x]+val[y]=2∗val[lca(x,y)] 题解 根据两个点不能互为祖先的要求可知: 比较可行的方式是枚举这个作为lca的结点,对于一个作为lca的结点 什么样的结点会以它为lca呢,当然是以它的不同的儿子为根结点的子树中的结点 因此,统计答案原创 2020-10-31 21:51:11 · 90 阅读 · 0 评论 -
【牛客7872 C变强的秘药】dp
【牛客7872 C变强的秘药】dp 传送门 题意 给n个数,按这个n个数给出的顺序取数,每一次至少取k个数,每一次取数的收益是取的序列后三个数之积 - 前三个数之积。例如我本次取a[1]~a[10],我能得到的收益是a[10] * a[9] * a[8] - a[1] * a[2] * a[3]。求怎么取能获得最大收益? 题解 dp[i]代表以 i 为取的某一次的右端点时,答案的最大值是多少。那么我们求的就是dp[n],因为显而易见n一定是某一次取的右端点。 考虑这个答案是由几部分组成的 是由3部分组成的,原创 2020-10-31 10:26:17 · 82 阅读 · 0 评论