首页 > 其他分享 >[Note]边分治和边分树

[Note]边分治和边分树

时间:2022-12-26 15:23:01浏览次数:34  
标签:分树 分治 subtree Note 该边 边分树

一般求解跟路径有关的问题。

边分治

中心边:当前树断开这条边,将树分成的两部分大小最大值最小。

类比点分治,我们考虑找到一条中心边 \((u,v)\) ,考虑强制钦定经过该边和不经过该边分别求解。

发现菊花图卡 T,三度化后就正确了。

边分树

其实正确的应该叫做边分树合并

一开始是一个由链组成的森林,链从根到底分别是从边分治开始到结束的所属的连通块的编号。

如何构造链:对于一个边分治过程,若当前中心边为 \((u,v)\),那么就在 \(subtree(u)\) 中每一个节点的链底左儿子加一个点 \(v\),在 \(subtree(v)\) 中每一个节点的链底左儿子加一个点 \(u\)。

计算答案原理:点对 \((u,v)\) 对答案产生贡献一定是第一次不属于同一个连通块。过程类似线段树合并。

真简单。

标签:分树,分治,subtree,Note,该边,边分树
From: https://www.cnblogs.com/1l2u3o/p/17005872.html

相关文章

  • [Note]生成函数
    普通生成函数常用于解决组合问题。对于无穷数列\(a\),生成函数即为\(f(x)=\sum_{i=0}^{∞}a_ix^i\)。容易发现一个显然的性质:若\(c_i=a_i+b_i\),那么有\(f_c(x)=f_a(......
  • 395. 至少有 K 个重复字符的最长子串 分治法 递归, 最简单了,半小时可以搞定。
    classSolution{public:  intlongestSubstring(strings,intk){    returndfs(s,k);  }  intdfs(strings,intk){//求字符串中最长的......
  • whctf2017_note_sys
    whctf2017_note_sys最近太颓废了,zikh师傅上南京参加比赛了恭喜获得第五名,我太菜了,只能膜拜大佬。><,在学习一下vmpwn吧,正好zikh师傅写的一篇保护漏洞利用主要就是利......
  • 根号分治入门
    根号分治思想概述根号分治,是应对序列问题的方法。对于一个序列问题,设置阀值\(S\),将数分为大于和小于两类,分类处理,达到优化复杂度的目的。\(S\)的大小具体分析。[CCO2021......
  • 算法--分治算法
    分治算法 一、算法思想  分治法作为一种常见的算法思想,其概念为:把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题,直到最后子问题可以......
  • 省选06. 分治
    CF1442DSum设\(dp(i,j)\)表示前\(i\)个数组选\(j\)个元素的最大值。\[dp(i,j)=\max_{k=0}^jdp(i-1,k)+sum(i,k)\]因为数组内的元素单调不降,因此有一个结论,只有一......
  • 边分治 学习笔记
    边分治学习笔记就普遍理性而论,边分治能做的点分治也能做,可是难度…参考博客:边分治讲解前置:多叉树转二叉树也叫三度化。边分治在二叉树上表现得很优秀,是\(O(nlogn)\)......
  • Codeforces 1654 G Snowy Mountain 题解 (重心分治)
    题目链接假设现在起点已经确定,我们观察从这个起点开始能走的最长路径长什么样。把这条最长路径中所有的非平地路径拿出来,它们肯定连成一线,因为不允许上坡;而一条路径重复走......
  • 数据传输 | DTLE Release Notes 详细解读 2.19.07.0
    2.19.07.0版本DTLEReleaseNotes以下对DTLE2.19.07.0版本的ReleaseNotes 进行详细解读。文章主要分为三部分内容:一、DTLE项目介绍二、改进/产品特点三、Bug修复......
  • 【794】Jupiter notebook扩展功能(感叹号,terminal使用)
    参考:增强JupyterNotebook的功能,这里有四个妙招参考:4AwesomeTipsforEnhancingJupyterNotebooksJupyterNotebookshavebeenanawesometoolforalldeveloper......