POJ 1679 The Unique MST(kuangbin带你飞 专题六:最小生成树)
2015-01-26 17:37
519 查看
- -题目问的是最小生成树是否唯一..唯一输出最小生成树总权重,不唯一输出Not Unique...
有大神说是判断次小生成树和最小生成树权值是否相等..相等就不唯一,当然这么高端的方法我是不会的,只能删除每一条最小生成树上的边找能否在求得一个最小生成树和这个一样...因为只有100个点..最多9900边...最9900次kruskal应该是没问题的吧...
吐槽一句:家里敲代码真是冻指头...
有大神说是判断次小生成树和最小生成树权值是否相等..相等就不唯一,当然这么高端的方法我是不会的,只能删除每一条最小生成树上的边找能否在求得一个最小生成树和这个一样...因为只有100个点..最多9900边...最9900次kruskal应该是没问题的吧...
吐槽一句:家里敲代码真是冻指头...
#include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<iostream> #include<algorithm> using namespace std; struct node { int x,y,s; }s[12000]; int cmp(node a,node b) { return a.s<b.s; } int f[120]; void inti() { for(int i=0;i<=100;i++) f[i]=i; } int find(int x) { if(x!=f[x]) return f[x]=find(f[x]); return x; } int main() { int T; cin>>T; int c[12000]; while(T--) { inti(); int flag=1; int n,m; cin>>n>>m; for(int i=0;i<m;i++) { scanf("%d %d %d",&s[i].x,&s[i].y,&s[i].s); } sort(s,s+m,cmp); int ans=0,t=0; for(int i=0;i<m;i++) { int x=find(s[i].x); int y=find(s[i].y); if(x!=y) { f[x]=y; c[t]=i; t++; ans+=s[i].s; } if(t==n-1) break; } for(int i=0;i<t;i++) { inti(); int an=0,tt=0; for(int j=0;j<m;j++) { if(j==c[i]) continue; int x=find(s[j].x); int y=find(s[j].y); if(x!=y) { f[x]=y; an+=s[j].s; tt++; } if(tt==n-1) break; } if(tt==n-1&&an==ans) { flag=0; break; } } if(flag) cout<<ans<<endl; else cout<<"Not Unique!"<<endl; } return 0; }
相关文章推荐
- POJ 1679 The Unique MST(最小生成树)
- poj 1679 The Unique MST 最小生成树
- poj1679.The Unique MST(最小生成树是否唯一)
- poj 1679 The Unique MST (判断最小生成树是否唯一)
- poj 1679 The Unique MST (最小生成树)
- Poj 1679 The Unique MST (最小生成树唯一性判定)
- poj 1679 The Unique MST (判断最小生成树是否唯一)
- POJ 1679 The Unique MST(求最小生成树是否唯一)
- poj 1679 The Unique MST 判断最小生成树是否唯一(图论)
- POJ 1679 The Unique MST 判断最小生成树是否唯一
- poj 题目1679 The Unique MST (最小生成树,次小生成树 prim)
- Poj-1679 The Unique MST -最小生成树
- (kruscal12.3.4)POJ 1679 The Unique MST(判断最小生成树的唯一性||次小生成树)
- poj 1679 The Unique MST(判断最小生成树是否唯一)
- POJ 1679 The Unique MST(判断最小生成树是否唯一)
- POJ 1679 The Unique MST(判断最小生成树是否唯一)
- Poj 1679 The Unique MST 判断最小生成树是否唯一
- POJ 1789 Truck History(kuangbin带你飞 专题六:最小生成树)
- poj 1679 The Unique MST (最小生成树)
- poj-1679-The Unique MST-最小生成树是否唯一