只有两种情况: 1.图连通的话 存在唯一。 2.不连通 可能存在多个。 无向图dfs求,不能建双向边。 有向图 dfs求,且可以求的长度,(拓扑后单向边)且长度为2的: void dfs(int u,int d){ vis[u]=1,dep[u]=d; for(int i=h[u];i;i=e[i].nt){ int v=e[i].to; if(!vis[v]) dfs(v,d+1); else if(vis[v]==1) b[++id]=dep[u]-dep[v]+1;
原创 2021-08-10 09:26:30
166阅读
: 定义: ,又叫,最显著的特点就是有 \(n\) 个点 \(n\) 条边,导致这个图上出现了一个唯一的,就像这样: 当然,如果保证这 \(n\) 个点 \(n\) 条边构成的是一个连通图时才是唯一,如果图不连通但是每个联通块点数都等于边数时,这个图就是一个森林。可以有好 ...
转载 2021-11-03 19:56:00
1317阅读
2评论
只有两种情况:1.图连通的话 存在唯一。2.不连通 可能存在多个。无向图dfs求,不能建双向边。有向图 dfs求,且可以求的长度,(拓扑后单向边)且长度为2的:void dfs(int u,int d){ vis[u]=1,dep[u]=d; for(int i=h[u];i;i=e[i].nt){ int v=e[i].to; if(!vis[v]) dfs(v,d+1); else if(vis[v]==1) b[++id]=dep[u]-dep[v]+1;
原创 2022-01-21 09:52:32
233阅读
: 就是比平常的多了一条边。。构成了一个 做法就是 dfs去找 然后删掉上的任意一条边,记下u和v 分别以u 和 v 为祖结点 进行树形dp 分别求出不要u 和 不要v的值 取大的 即可 一般这种题都是 对于一个对象 有两种选择 而只能选择一个 有的对象之间的选择会冲突 模板题:
转载 2018-09-04 22:40:00
57阅读
2评论
void getcircle(int x,int y) { while(x!=y) { circle[++tot]=x; x=st[--tp]; } circle[++tot]=y; } void dfs(int x,int lastedge) { mark[x]=1; if(!flag) st[+ ...
转载 2021-09-17 19:34:00
233阅读
2评论
浅谈) 本篇随笔简单讲解一下算法竞赛中的。也叫。 一、概念 其实我个人更喜欢叫它。更好理解。 它的标准定义是:具有N个点N条边的连通图。 如果不保证联通,它就会成为森林。 上张图直观理解一下。 这就是一棵。 如果我们把中间那个醒目的断开任意一条边,
转载 2020-10-14 16:22:00
981阅读
2评论
(有向图)DP:https://ac.nowcoder.com/acm/contest/140/B (无向图):bzoj3242 ,最小化最远距离。 (无向图):bzoj1791,求直径。 (无向图):bzoj1040,最大独立。 #include<bits/stdc++.h> #d
转载 2019-09-05 17:39:00
118阅读
2评论
如果你像本节的标题一样,恭喜你成功学会了这个东西洗洗睡吧 珍爱生命,建议远离 基本 是一种图结构,直观表现为 狭义的指树上两个点之间多一条边,整个图中有且仅有一个 广义上指边数和点数相同的图,即一个森林 特别的,对于有向图,每个点有且仅一条出边的为内向,有且仅有一条入边的 ...
转载 2021-10-15 06:40:00
148阅读
2评论
复习0.定义,又称,有nnn个点nnn条边,比多一条边。当nnn点nnn​​边是一个连通图是拥有唯一,如下图。否则当图不连通但是每个连通块点数等于边数时为森林。2.习题CF711D. Directed Roads给定nnn点nnn边,可改变边方向,有多少种无方案。找到所有。答案就是:2n−tot×∏i=1cnt(2sizei−2)\large 2^{n-tot}\times \prod\limits_{i=1}^{cnt}(2^{size_i}-2)2
原创 2022-01-20 16:05:31
52阅读
复习 0.定义 ,又称,有nnn个点nnn条边,比多一条边。 当nnn点nnn​​边是一个连通图是拥有唯一,如下图。 否则当图不连通但是每个连通块点数等于边数时为森林。 2.习题 CF711D. Directed Roads 给定nnn点nnn边,可改变边方向,有多少种无方案。 找到所有。 答案就是:2n−tot×∏i=1cnt(2sizei−2)\large 2^{n-tot}\times \prod\limits_{i=1}^{cnt}(2^{size_i}-2)2
原创 2021-08-10 09:13:44
78阅读
[总结] \(\in\) \(NOIP\) 考纲 概念类 的def 与普通类似,仅仅看上去形态多了一个(可以理解为加了一条边),所以叫的顶点数和边数相等。 类似这样:( \(copy\) 的 ) 还有这样:(外向) 、 当然还有这样:(内向直 ...
转载 2021-08-12 17:23:00
242阅读
2评论
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 ...
转载 2021-09-11 19:21:00
311阅读
2评论
概念 具有$N$个点$N$条边的连通图,如果图不是连通的,就会变成森林 除此之外,还有内向:每个点有且只有一条出边,外向:每个点有且只有一条入边 典型套路 一般有:直径,两点间的距离,数DP等类型的题目 一般做法用: 断和剩下的边分开处理 例题 P1453 城市环路 ...
转载 2021-10-29 10:42:00
119阅读
2评论
$\text{[ZJOI 2008] }$骑士 解法 题目实际上是求树上的最大点独立集的问题。对于一棵,它的所有独立集方案数必然可以被边 \((u,v)\) 划分 —— 选择了 \(u\) 或选择了 \(v\)。这也是 "破" 的基础。 于是可以随便选一条上的边 \((u ...
转载 2021-09-06 16:12:00
79阅读
2评论
dp遇到好几次都没做出来qaq一定要练一波。。 这个题先断上一边。。然后是个入门dp。。
原创 2022-08-31 17:56:20
39阅读
题目链接:https://darkbzoj.cf/problem/1791解题思路:如果题目给的是一棵,那么就跟简单了,直接
原创 2023-05-31 09:40:37
70阅读
然后上的情况。。。首先处理一下外向的情况。。跑一遍dfs可以解决。。顺便处理最大深度。。。 然后是最远路径经过的情况。。逐点对求实在是非常麻烦,考虑的情况很多。。 这需要特殊的姿势(就是题解)。。 考虑已经确定了答案点,那么这个点延伸出去能得到一棵最短路路径。。显然这棵最短路径必将不会经过上的一条边,因此,可以枚举...
原创 2022-08-31 18:26:05
91阅读
又被卡常。。MLE1个点老是
原创 2022-08-31 18:33:21
70阅读
的千层套路 就是一棵树上多了一条边,因而形成了一个。 因为其特殊的性质,很多情况下可以去掉当成一棵考虑。 大部分的树上的问题,随意删去上的一条边,仍然可以得到一个可行解,因此最暴力的做法就是把所有边都删掉,对得到的每一棵找一组最优解,再在找到的所有解中找出最优的。 Luog ...
转载 2021-09-08 22:03:00
97阅读
2评论
写的大多只是思路,比较简单的细节和证明过程就不放了,有需者自取。 简介 简单说一说吧。由名字扩展可得这是一类以为基础的(当然显然它不是。 通常的表现形式是一棵再加一条非边,把图画出来是一种向外发散的有趣图案。 体现在【题目条件】上就是一个 \(n\) 个点 \(n\) 条边的连 ...
转载 2021-09-09 21:33:00
51阅读
20点赞
  • 1
  • 2
  • 3
  • 4
  • 5