摘要: 图论基础模板 Dijkstra 算法分析: 按路径长度递增次序产生算法: 把顶点集合V分成两组: (1)S:已求出的顶点的集合(初始时只含有源点V0) (2)V-S=T:尚未确定的顶点集合 将T中顶点按递增的次序加入到S中,保证: (1)从源点V0到S中其他各顶点的长度都不大于从V0到T中任何顶点的 阅读全文
posted @ 2021-01-05 13:21 君与 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 给定一个n个点m条边的有向图,点的编号是1到n,图中可能存在重边和自环。 请输出任意一个该有向图的拓扑序列,如果拓扑序列不存在,则输出-1。 若一个由图中所有点构成的序列A满足:对于图中的每条边(x, y),x在A中都出现在y之前,则称A是该图的一个拓扑序列。 #include<bits/stdc+ 阅读全文
posted @ 2021-01-05 13:16 君与 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 给定一个n个点m条边的有向图,图中可能存在重边和自环。 所有边的长度都是1,点的编号为1~n。 请你求出1号点到n号点的最短距离,如果从1号点无法走到n号点,输出-1。 #include<bits/stdc++.h> using namespace std; const int N = 2e5+5; 阅读全文
posted @ 2021-01-05 13:01 君与 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 给定一颗树,树中包含n个结点(编号1~n)和n-1条无向边。 请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。 重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。 #include<bits/stdc++.h> # 阅读全文
posted @ 2021-01-05 12:28 君与 阅读(98) 评论(0) 推荐(0) 编辑