摘要:
//题目大意:判断最小生成树是否唯一//解题思路:求出最小的次小生成树,判断最小的次小生成树是否与最小生成树的权值和一样,如果一样,则唯一,否则不唯一//求次小生成树的算法:(1)有个比较直观的方法。依次把MST上的边删掉,然后再做MST。这样的做就是编码简洁,有模块可以重用。效率O(n*O(MST))(2)既然每替换出去一条边,都将使代价变大。所以求次小生成树,只需要替换出去一条边即可。枚举不在... 阅读全文
摘要:
//最小生成树求生成树中的最大边,使用Kruskal算法//总结:re错误为开的数组太小#include <stdio.h>#include <algorithm>using namespace std;#define nodesize 2001#define edgesize 10001typedef struct node{int v;//起点int u;//终点__i... 阅读全文
摘要:
//题目大意:最大生成树//解题思路:在排序的时候按从大到小排即可,其余与Kruskal算法一样//注意:如果使用Prime算法注意考虑重边的情况,Kruskal算法不必考虑重边的情况(因为是将边进行排序,当一条边已经加入的时候,不可能加入重边)#include <stdio.h>#include <algorithm>using namespace std;#define... 阅读全文
摘要:
//最小生成树:Kruskal算法#include <stdio.h>#include <algorithm>using namespace std;#define arraysize 15001#define nodenum 1001typedef struct node{int start;//起点int end;//终点int w;//费用};node edges[a... 阅读全文