hdu 2122 Ice_cream’s world III(最小生成树)
2014-08-13 00:48
441 查看
感觉就是 畅通工程的改版 直接贴代码了
#include<stdio.h> #include<string.h> #include<math.h> #include<iostream> #include<algorithm> #include<queue> #include<stack> #define mem(a,b) memset(a,b,sizeof(a)) #define ll __int64 #define MAXN 1000 #define INF 0x7ffffff #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 using namespace std; struct Road { int u,v,w; }; Road r[10000+10]; int fat[1000+10]; int n,m,sum,ans; int cmp(Road a,Road b) { return a.w<b.w; } int find(int x) { return fat[x]==x?x:find(fat[x]); } void Kru() { sum=1;ans=0; for(int i=0;i<m;i++) { int x=find(r[i].u); int y=find(r[i].v); if(x!=y) { ans+=r[i].w; sum++; fat[x]=y; } } if(sum==n) printf("%d\n\n",ans); else printf("impossible\n\n"); } int main() { int i,j; while(scanf("%d%d",&n,&m)!=EOF) { for(i=0;i<n;i++) fat[i]=i; for(i=0;i<m;i++) scanf("%d%d%d",&r[i].u,&r[i].v,&r[i].w); sort(r,r+m,cmp); Kru(); } return 0; }
相关文章推荐
- hdu 2122 Ice_cream’s world III(最小生成树))
- 最小生成树 Prim 算法HDU 2122 Ice_cream’s world III
- HDU 2122 Ice_cream’s world III(最小生成树Kruskal)
- hdu 2122 Ice_cream’s world III(最小生成树)
- HDU 2122 Ice_cream’s world III 【最小生成树】
- hdu 2122(Ice_cream’s world III)(最小生成树,两种算法都可以)
- HDU 2122 Ice_cream’s world III【最小生成树】
- HDU2122--Ice_cream’s world III--最小生成树--kruskal
- Ice_cream’s world III hdu 2122 最小生成树
- HDU 2122 Ice_cream’s world III(最小生成树)
- 文章标题 HDU 2122: Ice_cream’s world III (最小生成树+kruskal)
- hdoj 2122 Ice_cream’s world III 【最小生成树】
- hdoj 2122 Ice_cream’s world III【最小生成树】
- hdoj 2122 Ice_cream’s world III 【最小生成树】
- hdoj 2122Ice_cream’s world III 【最小生成树 kruskal && prim】
- HDOJ 2122 Ice_cream’s world III(最小生成树--prime 水)
- hdoj 2122 Ice_cream’s world III【最小生成树】
- 杭电 最小生成树 2122 Ice_cream’s world III
- hdu 2122 Ice_cream’s world III
- hdu 2122 Ice_cream’s world III