首页 > 其他分享 >CF600E Lomsat gelral

CF600E Lomsat gelral

时间:2023-11-01 09:24:04浏览次数:29  
标签:结点 log 轻边 dsu 合并 gelral CF600E Lomsat

树上启发式合并(dsu on tree)通常用来查询不带修的子树信息,信息要求可合并。

对于一个结点 \(u\),其步骤如下:

  1. 求解其轻儿子的答案,同时清除递归产生的影响。
  2. 求解其重儿子的答案,保留递归产生的影响。
  3. 将轻儿子子树内的每个结点都合并进答案中,同时成为以 \(u\) 为根的子树产生的影响。

发现每个结点只会在根到该结点路径上的每条轻边处被清空加合并一次,根据重剖的性质这样的轻边最多只有 \(O(\log n)\) 条。所以如果合并一次信息的时间复杂度算 \(O(m)\),dsu on tree 的时间复杂度就是 \(O(nm\log n)\) 的。

来看这道板子题,合并信息用桶来实现即可。

标签:结点,log,轻边,dsu,合并,gelral,CF600E,Lomsat
From: https://www.cnblogs.com/landsol/p/17802295.html

相关文章

  • CF600E Lomsat gelral(树上启发式合并)
    题目链接:https://codeforces.com/problemset/problem/600/E这是一道树上启发式合并的题,就只是在模板的基础上稍微变化了一下解题思路:我们需要计算当前u节点的答案,要计算加入非重链节点对此答案的影响,在计算加入节点对ans影响的时候,遍历u除了重链外的所有子树节点(因为重链部分的......
  • Educational Codeforces Round 2 E Lomsat gelral 线段树合并
    题目链接大致题意给你一棵有n个点的树,树上每个节点都有一种颜色ci(ci≤n),让你求每个点子树出现最多的颜色/编号的和记性不好,主要是为了防止自己忘掉,今天和队友合作写题......
  • Lomsat gelral
    Lomsatgelral统计节点出现次数最多的颜色之和概要:运用树链剖分,每次不用重新跑重儿子,从而将复杂度降低到nlogn#include<bits/stdc++.h>usingnamespacestd;usingl......