首页 > TAG信息列表 > 基环树
基环树的直径
转载自LIOI_TEos的题解 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 1e6 + 100; const ll mod = 20040820; const int INF = 2147483647; const int lim = 1e4 + 1; int n, v[maxn], v2[maxn], r[maxn]; ll anss, st, ans2,391 基环树 P2607 [ZJOI2008] 骑士
视频链接: // Luogu P2607 [ZJOI2008] 骑士 #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N=1e6+10; typedef long long LL; int n; struct edge{int v,ne;}e[N]; int h[N],w[N],idx; int r1,r2,vis[N]; LL f[N【图论/基环树】AcWing 392. 会合
分析 这题就是一道需要分类讨论的图论。。 注意到题目中每个点只有一条出边,也就是说给出的图是一个内向的基环树森林。 首先进行预处理: 开一个并查集,这能够将两个点不在同一棵基环树的情况筛掉。 利用内向树随便找一个点跳到基环树的环(环上所有点记为“根”)。然后建反图,在反图上AT3537 [ARC083D]Collecting Balls 题解
Post time: 2021-09-22 21:55:13 题面 一道图论(树论)综合好题,被亓神扒出来放到了 vc 胡策上。 首先发现球的数量等于机器人的数量,也就是说,每一个机器人都必须要吃掉一个球。感觉上直接做不好做,考虑转化,把每个球当做边,将横纵坐标上的机器人连起来。 连完之后,发现形成了一个边数等于4.7省选练习
\(4.7\)省选练习 开幕雷击,质数\(p+998244353+998244353\) 然后基环树\(+\)树\(+\)树 三道数数(树)\(?!\)对于数数一窍不通的我枯了\(...\) 不过貌似都很简单啊\(...\)痛斥出题人\(998244353\)搞心态行为 \(T1\) 考虑最后一定是一个环 那么\(n\)个点\(n\)条边所构成的是一个基环树基环树
基环树 题目传送门 题目大意: 给一个图,问该图是否是一颗基环树。 基环树:只有一个环并且连通的图 思路: 连通树满足边数等于点数减一 基环数满足边数等于点数 ll fa[N] ; ll find(ll x){ return fa[x] = fa[x] == x ? x : find(fa[x]) ; } string solve(){//基环树 cin >> n >>2021.12 做题笔记
因为 DP 太差,教练丢给我们一堆联赛难度的 DP 题做,然后完全不会,可能我的 DP 就是普及组水平。。 Luogu P2470 [SCOI2007]压缩 为数不多的自己做出来的紫题 \(f_i\) 表示到 \(i\) 的答案,转移枚举上一个 M 的位置,然后发现还要算一个 \(g_{l,r}\) 表示从 \(l\) 到 \(r\)(\(l\) 左面有一基环树
基环树的题一般比较明显(好吧,有的与有的也不太明显),有且仅有一个环,一般体现在条件给出 \(n\) 个点 \(n\) 条边 如果是无向图,直接打标机进行 \(dfs\) 即可找到环,个人喜欢开个栈记录当前点,然后找到打过标记的点直接弹栈知道栈内的这个点,于是环就被拎出来了。 如果是有向图,内向树与外向基环树学习笔记 & CF711D Directed Roads
传送门 基环树 定义: n个节点n条边的连通图。 性质: 很显然有且仅有一个环。 如何找环: dfs,每次读到一个节点入栈(类似Tarjan) 拓扑排序:最后剩下的度数不为零的点一定就在环上 题目通常解法: 把环看做一个整个树的根,然后把子树的信息挂到环的每一个点上,问题变成了环上操作,再根据题目[luogu P5129] 不可思议的迷宫 题解
题目链接:P5129 不可思议的迷宫 题面 题目描述 给定一棵基环树,等概率在基环树上选取一个起点,再等概率选取终点(起点和终点可以重合),确定起点和终点后,如果会等概率选取起点到终点的一条简单路径,即不重复经过任何一条边。 求路径长度的期望,对 \(19260817\) 取模。 输入格式 第一行一个基环树乱写
如果你像本节的标题一样,恭喜你成功学会了这个东西洗洗睡吧 珍爱生命,建议远离 基本 基环树是一种图结构,直观表现为树套环 狭义的基环树指树上两个点之间多一条边,整个图中有且仅有一个环 广义上指边数和点数相同的图,即一个基环树森林 特别的,对于有向图,每个点有且仅一条出边的为内向初学基环树
基环树 基环树定义:一个有n个点,n条边的连通图; ad:任意的子图的边不会超过点数 基环内向树(森林):所有的点都有且仅有一条出边 基环外向树(森林):所有的点都有且仅有一条入边 理解方式: 1.将基环树看作一棵树上,多了一条边, 2.(解题通法)我们取出环边,然后环上每个节点都【模板】tarjan 基环树找环
void tarjan(int x,int from){ dfn[x] = ++sz; for (int i = head[x]; ~i; i = fail[i]) { if (i == (from ^ 1)) continue; int v = edge[i]; if (dfn[v]) { if (dfn[v] < dfn[x]) continue; cyc[x] = true; for (; v != x; v = father[v]){ cyc[v] = tr【错误总结】
这里记录一下写代码犯过的错误。 基环树找环的时候要判断走到这一个环上点为止 每次新找环都要清空栈 找到环不要贸然 return, 要在这一次 dfs 中标记好所有点。 如果要累计贡献并改变节点位置,先累计贡献,再移动节点。 如果有形如无法匹配的 \(dp\) 失配,记得它可能会记录[总结] 基环树
[总结] 基环树 基环树 \(\in\) \(NOIP\) 考纲 概念类 基环树的def 与普通树类似,仅仅看上去形态多了一个环(可以理解为树加了一条边),所以叫基环树。 基环树的顶点数和边数相等。 类似这样:( \(copy\) 的 ) 还有这样:(外向树) 、 当然还有这样:(内向树) 基环树直径def 和普通树2021.08.09 P6037 Ryoku的探索(基环树)
2021.08.09 P6037 Ryoku的探索(基环树) P6037 Ryoku 的探索 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 重点: 1.树的性质 2.基环树的性质 题意: Ryoku 所处的世界可以抽象成一个有 nn 个点, nn 条边的带权无向连通图 GG。每条边有美观度和长度。 Ryoku 会使用这样一个策略探索世界基环树 dp 学习笔记
这其实是 N 总发明的算法。 前置芝士:基环树 给定一棵 \(n\) 个点,\(n-1\) 条边的树,任意在树上的两点之间新添加一条边。那么就会形成一个环,整个图也就被称为基环树,如下图所示: 基环树可以简单的理解为所有的树在一个环上。 特别的,如果给基环树中的每一条边指定一个方向,在满足环上的ZJOI 2008 骑士
ZJOI 2008 骑士 题意:https://www.luogu.com.cn/problem/P2607 显然的图论题。我们把每个骑士看作一个点,将每个骑士与他厌恶的骑士连一条无向边。然后就会发现这题跟 没有上司的舞会(https://www.luogu.com.cn/problem/P1352) 有点类似。如果一个点选了,那么所有与它相连的点就P4381 [IOI2008] Island
【题意】 给一个基环树森林,求每个基环树的最长链之和 【分析】 对于每个基环树,我们可以把环先当成一个点看待,然后作为树的根节点 这时,直径有两种情况: 1.完全在根的一个子树内,不经过根 2.跨过根,位于两个子树内 可以先dfs一波找到环,然后计算第一种情况,对于根的每个子树进行以此树CF711D Directed Roads
【题意】 有 n 个点和 n 条边,第 i 条边从 i 连到 ai 。 每条边需要指定一个方向(无向边变为有向边)。问有多少种指定方向 的方案使得图中不出现环 【分析】 题目给定的是一个基环树森林,要求我们把无向边定向,问不包含环的方案数 显然这个环只能来自基环树的环 考虑一棵基环树,只要环上acwing-358. 岛屿(基环树dp)
你准备游览一个公园,该公园由 N 个岛屿组成,当地管理部门从每个岛屿出发向另外一个岛屿建了一座桥,不过桥是可以双向行走的。 同时,每对岛屿之间都有一艘专用的往来两岛之间的渡船。 相对于乘船而言,你更喜欢步行。 你希望所经过的桥的总长度尽可能的长,但受到以下的限制: 可以自行【未完成】[nomura2020][Atcoder] NOMURA Programming Competition 2020
NOMURA Programming Competition 2020 C - Folia 较简单二叉树性质题。 D - Urban Planning 代码错误: dp的下标写错…… 有几次运算时没有取模导致移溢出…… 思维题:模型转换…… 基环树:计数连通块=>计数环。环:已有环(并查集)/新环(组合、dp)。 考虑所有边\((i,P+i)\)构成的图,若动态规划的各种模型<三>
上文:\(link\) :动态规划的各种模型<二> 本篇主要讲解树形 DP 与基环树 DP 。 配合文章右上角目录食用更佳。 树形DP 一类在树上的动态规划。 由于树的特殊性质,我们一般会使用 DFS序 来完成 DP,或者在树的topo序列上 DP。 其划分状态的标准也多与子节点的性质有关。 树的最长直径基环树学习笔记
前言 emmmm,没有什么想要说的 算法概述 基环树啊,经过我粗浅的学习,认为它是将环和树边分开处理,具体来说就是每次强制断掉环中的任意一条边来处理。(我觉得说不上算法,可能只是一种数据结构或者巧妙的思想? 反正就是很妙啊。。。 定义 基环树,也是环套树,一种有 \(n\) 个点 \(n\) 条边 的树形DP和基环树
树形DP和基环树 目录树形DP和基环树基础树形dp树上背包换根树形dp基环树基环内向树和基环外向树 基础树形dp 处理与树和图有关的dp 天生的dp结构,以每棵子树为每个问题的子结构,在父亲节点合并 巧妙地利用bfs和dfs序,可以优化问题,或得到好的解决方法 可以考虑树上的数据结构来优化