随笔分类 -  最短路||最小生成树

摘要:传送门 来源:牛客网题目描述:小w不会离散数学,所以她van的图论游戏是送分的小w有一张n个点n-1条边的无向联通图,每个点编号为1~n,每条边都有一个长度小w现在在点x上她想知道从点x出发经过每个点至少一次,最少需要走多少路输入描述:第一行两个整数 n,x,代表点数,和小w所处的位置第二到第n行, 阅读全文
posted @ 2019-02-02 20:27 better46 阅读(672) 评论(0) 推荐(0)
摘要:hdu6311Cover 题目传送门 题意:有最少用多少条边不重复的路径可以覆盖一个张无向图。 分析:对于一个连通块(单个点除外),如果奇度数点个数为 k,那么至少需要max{k/2,1} 条路径。将奇度数的点两两相连边(虚边),然后先从奇度数的点出发,搜索由其出发的欧拉回路。需要将遍历的边和其反向 阅读全文
posted @ 2019-01-29 17:07 better46 阅读(255) 评论(0) 推荐(0)
摘要:F. MST Unification 题目传送门 题意: 给你n个顶点,m条边;保证没有重边,其中存在多个MST(最小生成树), 你可以修改一些边的权值,让其中有且仅有一个最小生成树,求最少操作的边数。 思路: 最小生成树算法的加工,我们从kruskal算法入手,kruskal就是先对边排序, 然后 阅读全文
posted @ 2019-01-27 21:50 better46 阅读(123) 评论(0) 推荐(0)
摘要:const int maxn=100005; const int maxm=200005; int T,n,m; int tot,head[maxn],rd[maxn]; ll dis[maxn]; int u[maxm],v[maxm],c[maxm],a[maxm],b[maxm]; ll ans; struct { int v; ll cost; int nex... 阅读全文
posted @ 2019-01-26 22:31 better46 阅读(180) 评论(0) 推荐(0)
摘要:prim 算法模板 #include<iostream> #include<string.h> #include<algorithm> #include<stdio.h> #include<math.h> #include<queue> #include<stack> using namespace 阅读全文
posted @ 2018-11-22 23:32 better46 阅读(141) 评论(0) 推荐(0)
摘要:首先给出学习的博客:链式前向星与邻接表对比 链式前向星就是一个储存图很好用的东西 #include <iostream> using namespace std; #define MAXM 500010 #define MAXN 10010 struct EDGE{ int next; //下一条边 阅读全文
posted @ 2018-11-21 22:56 better46 阅读(196) 评论(0) 推荐(0)