摘要:
题目大意是判断一个图的最小生成树是否唯一求出次小生成树,若次小生成树的权值不等于最小生成树,则唯一,若相等,则不唯一#include #include int map[110][110],max[110][110],p[110],low[110],n,m,vis[110][110]; /*max[i][j]表示最小生成树中从i到j的路径中最长的边,map是边,p[i]是prim每次选进去的边一个节点(在之前选进去的集合中的节点)vis[i][j]若为0,表示i到j无边,等于一表示有边但未选入最小生成树,等于2表示选入了最小生成树*/int MAX(int a,int b){ if(a>b 阅读全文
摘要:
题意就是要求最小生成树,用的kruskal#include #include int p[30],n,x1;struct edge{ int u,v,w;}ed[100];int get(int x){ if(p[x]==x) return x; else return p[x]=get(p[x]);}void uni(int x,int y){ int p1,p2; p1=get(x); p2=get(y); if(p1!=p2) p[p1]=p2;}int cmp(const void *a,const void *b){ edge aa=*(const edge *)a; edge... 阅读全文