生成树
Let_life_stop
和强者对战才是提升自己最快的方法。
展开
-
判断最小生成树是否唯一
题目链接:https://vjudge.net/contest/67265#problem/B 具体思路:首先,跑一遍最小生成树,然后在求最小生成树的过程中,记录任意两个城市之间的最大边权,然后再暴力,枚举任意两个城市,然后如果这两个城市在最小生成树上有直接边相连,套用公式,(q[i].num+q[j].num)/(mst- road[i][j]),如果没有直接边相连,就套用公式(q[i].nu...原创 2018-11-10 16:10:07 · 214 阅读 · 0 评论 -
求次小生成树
题目链接:https://cn.vjudge.net/contest/67265#problem/C 具体思路:和判断最小生成树是否唯一的思路差不多,首先跑一遍最小生成树,在求最小生成树的过程中记录任意两个点之间的最大权值,然后试着暴力,如果有一条边没有在最小生成树上,那么就先加上这条边的权值,再去减去两个端点之间的最大权值,求一个最小值,这就是次小生成树。 AC代码: #include&...原创 2018-11-10 16:56:11 · 239 阅读 · 0 评论 -
次小生成树 克鲁斯卡尔
题目链接:https://cn.vjudge.net/contest/67265#problem/D 具体思路:这个题如果用prim的话,对于重边,如果用数组是存不了的,所以可以通过克鲁斯卡尔算法求次小生成树。 首先,求出最小生成树,在求最小生成树的过程中,记录下都有哪些边被记录到了最小生成树上,然后再试着求次小生成树。 每一次取最小生成树上的一条边,去除这条边,然后再跑一下克鲁斯卡尔算法,...原创 2018-11-14 17:56:53 · 170 阅读 · 0 评论