Note -「圆方树」学习笔记】的更多相关文章

目录 圆方树的定义 圆方树的构造 实现 细节 圆方树的运用 「BZOJ 3331」压力 「洛谷 P4320」道路相遇 「APIO 2018」「洛谷 P4630」铁人两项 「CF 487E」Tourists 「SDOI 2018」「洛谷 P4606」战略游戏 「BZOJ 4316」小C的独立集 「洛谷 P5236」「模板」静态仙人掌 「HNOI 2009」「洛谷 P4410」无归岛 圆方树的定义   圆方树是由一个无向图转化出的树形结构.转化方法为: 所有原图的点为"圆点". 对于每个点…
前置芝士 树连剖分及其思想,以及优化时间复杂度的原理. 讲个笑话这个东西其实和 Dsu(并查集)没什么关系. 算法本身 Dsu On Tree,一下简称 DOT,常用于解决子树间的信息合并问题. 其实本质上可以理解为高维树上 DP 的空间优化,也可以理解为暴力优化. 在这里我们再次明确一些定义: 重儿子 & 轻儿子:一个节点的儿子中子树最大的儿子称为该节点的重儿子,其余的儿子即为轻儿子.特殊的,如果子树最大的有多个,我们任取一个作为重儿子. 重边 & 轻边:连接一个节点与它的重儿子的边称为…
FFT即快速傅里叶变换,离散傅里叶变换及其逆变换的快速算法.在OI中用来优化多项式乘法. 本文主要目的是便于自己整理.复习 FFT的算法思路 已知两个多项式的系数表达式,要求其卷积的系数表达式. 先将两个多项式分别转化为点值表达式,完成点值表达式的乘法,然后转为系数表达式得到结果. 点值表达式的乘法.整体考虑:假设已知两个多项式$A(x)$和$B(x)$.如果已知当$x=x_0$时$A(x_0)$和$B(x_0)$,则其乘积一定有点值$A(x_0)*B(x_0)$.因此点值表达式的乘法复杂度$O…
仙人掌&圆方树学习笔记 1.仙人掌 圆方树用来干啥? --处理仙人掌的问题. 仙人掌是啥? (图片来自于\(BZOJ1023\)) --也就是任意一条边只会出现在一个环里面. 当然,如果你的图片想看起来舒服一点,也可以把图片变成这样子 (图片来源于网络) 2.DFS树 为啥要写这个?--因为这个看起来也可以解决一些仙人掌的问题. 对于一个仙人掌,我们随便构建出一棵生成树. 然后我们就多了一些边--可以叫返祖边,非树边--你想叫啥就叫啥. 因为每条边只会出现在一个环中, 所以每一条返祖边覆盖了树中…
终于学了圆方树啦~\(≧▽≦)/~ 感谢y_immortal学长的博客和帮助 把他的博客挂在这里~ 点我传送到巨佬的博客QwQ! 首先我们来介绍一下圆方树能干什么呢qwq 1.将图上问题简化到树上问题 2.一般是路径并 3.资磁修改! 然后我们就可以步入正题来学习圆方树啦~ ——超良心圆方树教程!—— 这里是一个前缀芝士清单! 1.Tarjan求点双连通分量 2.树链剖分 如果你大体知道这两个东西在干什么 那你看接下来的教程就会非常熟练[大雾 一.圆方树的构造 原图中的点称为原点 新建的点称为方…
题目:https://loj.ac/problem/2587 先写了 47 分暴力. 对于 n<=50 的部分, n3 枚举三个点,把图的圆方树建出来,合法条件是 c 是 s -> f 路径上的方点连出去的某个圆点.像找 LCA 那样走一遍 s -> f 路径即可. 对于树的部分,考虑一条路径对答案的贡献是其边数减 1 ,所以对于每条边求一下它在多少路径中,就是 siz[ v ] * ( n-siz[ v ] ) ( v 是它指向的点),然后答案再减去 \( C_n^2 \) 即可. 注…
仙人掌 圆方树是用来解决仙人掌图的问题的,那什么是仙人掌图呢? 如图,不存在边同时属于多个环的无向连通图是一棵仙人掌 圆方树 定义 原先的仙人掌图,通过一些奇妙的方法,可以转化为一棵由圆点,方点和树边构成的树--圆方树,具体构建方法如下 原仙人掌的每一个点为圆点,对于每个环都新建一个方点,方点向环上的每一个圆点连边,就构成了圆方树. ___ 构建方法 用\(tarjan\)算法求出点双,对于每一个点双新建一个方点与环上的点相连,注意一条边连接两个点的不算点双. 代码: void tarjan(i…
主要卡在一个结论上..关于点双有一个常用结论,也经常作为在圆方树/简单路径上的良好性质,对于任意点双内互不相同的三点$s,c,t$,都存在简单路径$s\to c\to t$,证明不会.可以参见clz博客..我就是跟着他学的 然后就好办了,转化为树上两点计经过点双内所有点个数,然后赋权后变为统计两两圆点对的路径权值和,这个就是一个树形DP,统计每个点作为圆点或者方点被所有路径经过多少次,加入答案.. 还是比较裸的,因为重点还在于这个很多题都出现到的点双的简单路径的性质.. #include<ios…
QWQ果然我已经什么都学不会的人了. 这个题目要求的是图上所有路径的点权和!QWQ(我只会树上啊!) 这个如果是好啊 这时候就需要 圆方树! 首先在介绍圆方树之前,我们先来一点简单的前置知识 首先,我们需要知道什么是 点双联通分量 若一个无向图中的去掉任意一个节点都不会改变此图的连通性,即不存在割点,则称作点双连通图.那么一个极大的点双联通子图,就是一个双联通分量了 那么求这个方法,和普通求割点的\(tarjan\)类似 用一个栈维护所有的点 对于搜索到一个割点,然后把他的栈内部的点依次弹栈,直…
0.前言 从这篇随笔开始记录Java虚拟机的内容,以前只是对Java的应用,聚焦的是业务,了解的只是语言层面,现在想深入学习一下. 对JVM的学习肯定不是看一遍书就能掌握的,在今后的学习和实践中如果有领会到的心得和踩过的坑,将会对这些文章进行更新. 另外,人脑更喜欢图胜过文字,有些流程先用文字码在那儿,后面有时间再画图. 1.「深入理解Java虚拟机」学习笔记(1) - Java语言发展趋势 2.「深入理解Java虚拟机」学习笔记(2)- JVM内存区域 3.[Java]「深入理解Java虚拟机…