UVA 10600 ACM Contest and Blackout (次小生成树)
2015-02-08 16:03
337 查看
题意没看...既然kuangbin巨巨是次小生成树的题目...然后计算了看了一下。输出次小生成树和最小生成树即可...
用了kruskal,删除最小生成树的某一条边在做最小生成树..求得的最小的一个值就是次小生成树的值...
用了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; } int ansx=0x7fffffff; for(int i=0;i<t;i++) { inti(); int tt=0,an=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) { ansx=min(ansx,an); } } printf("%d %d\n",ans,ansx); } return 0; }
相关文章推荐
- UVA 10600 - ACM Contest and Blackout(最小生成树&次小生成树)
- UVa10600 ACM Contest and Blackout(最小和次小生成树)
- UVA 10600 ACM Contest and Blackout 次小生成树
- 【UVA 10600】 ACM Contest and Blackout(最小生成树和次小生成树)
- uva 10600 ACM Contest and Blackout (次小生成树)
- UVA 10600 ACM Contest and Blackout(次小生成树)
- uva 10600 - ACM Contest and Blackout(次小生成树)
- UVA-10600 ACM Contest and Blackout (次小生成树)
- UVA 10600 ACM contest and Blackout(次小生成树)
- UVA - 10600 ACM Contest and Blackout(次小生成树)
- UVA 10600 - ACM Contest and Blackout (次小生成树)
- uva 10600 - ACM Contest and Blackout(次小生成树)
- kuangbin专题八 UVA 10600 ACM Contest and Blackout(次小生成树)
- UVa 10600 ACM contest and Blackout( 次小生成树)
- Uva 10600 ACM Contest and Blackout(次小生成树)
- UVA-10600-ACM Contest and Blackout (次小生成树三种解法)
- UVA 10600 ACM Contest and Blackout (次小生成树)
- UVA 10600 ACM Contest and Blackout 次小生成树/裸
- UVA10600 ACM Contest and Blackout (次小生成树)
- UVA 10600 ACM Contest and Blackout 次小生成树/裸