Kru&&Prim模板
2010-11-13 20:57
183 查看
#include<stdio.h> #include<string.h> #define maxcost 99999 int g[100][100]; int n,m; int pre[100],dist[100],vis[100]; void prim(int v) { int i,j,dis,min,k,ans=0; memset(vis,true,sizeof(vis)); for(i=1;i<=n;i++) { pre[i]=1; dist[i]=g[v][i]; } vis[1]=false;dist[1]=0; for(i=1;i<=n;i++) { min=maxcost;k=v; for(j=1;j<=n;j++) { if(dist[j]<min&&vis[j]) {min=dist[j];k=j;} } if(min!=maxcost) { ans+=min; } vis[k]=false; for(j=1;j<=n;j++) { if(vis[j]&&dist[j]>g[k][j]&&g[k][j]!=maxcost) { dist[j]=g[k][j]; pre[j]=k; } } } printf("%d/n",ans); } int main() { int a,b,c,i,j; scanf("%d%d",&n,&m); for(i=1;i<=n;i++) for(j=1;j<=n;j++) g[i][j]=maxcost; while(m--) { scanf("%d%d%d",&a,&b,&c); g[a][b]=c; g[b][a]=c; } prim(1); return 0; }
#include<stdio.h> #include<string.h> #define maxcost 99999 int n,m,index,pre[100],ans; struct node { int v,to,len; }edge[100]; void add(int a,int b,int c) { edge[index].v =a; edge[index].to =b; edge[index].len =c; index++; } void uion(int a,int b) { if(a<b) pre[b]=a; else pre[a]=b; } void sort() { int i,j,k; struct node temp; for(i=0;i<index-1;i++) { k=i; for(j=i+1;j<index;j++) { if(edge[k].len >edge[j].len ) k=j; } temp=edge[i];edge[i]=edge[k];edge[k]=temp; } } int find(int i) { while(pre[i]!=i) i=pre[i]; return i; } void kru() { int i,j,k; int tt=0; ans=0; for(i=1;i<=n;i++) pre[i]=i; for(i=0;i<index;i++) { if(tt==n-1) return ; int f1=find(edge[i].v); int f2=find(edge[i].to ); if(f1!=f2) { ans+=edge[i].len ; uion(f1,f2); } } } int main() { int a,b,c,i,j; scanf("%d%d",&n,&m); index=0; while(m--) { scanf("%d%d%d",&a,&b,&c); add(a,b,c); } sort(); kru(); printf("%d/n",ans); return 0; }
相关文章推荐
- 最小生成树 HDU 各种畅通工程的题,prim和kru的模板题
- Kruskal && Prim模板
- 最小生成树模板【kruskal & prim】
- 最小生成树(prim&kruskal)模板
- 最小生成树 :: Prim && Kruskal 模板
- NYOJ 38 布线问题 prim && Kruskral 模板题
- 【哈希&KMP模板题】-POJ-3461-Oulipo
- HDU-#1233 还是畅通工程(Prim & Kruskal)
- Kruskal & Prim 最小生成树HDU1863 畅通工程
- 模板声明中template <typename T>和template <class T>
- 字典树模板题&hdu1251
- 二分图模板总结 nyoj 239 月老的难题 && poj 1468 COURSES
- PHP 安全三板斧:过滤、验证和转义之转义篇 & Blade模板引擎避免XSS攻击原理探究
- HDU_1532 && HDU_3549(最大流EK算法模板)
- Kruskal&Prim
- [矩阵树定理 模板题] BZOJ 1016 [JSOI2008]最小生成树计数 & HDU 4408 Minimum Spanning Tree
- C++----------------->C++模板
- HDU 2544 最短路(Dijkstra)(上手&&模板)
- ECshop 二次开发模板教程3
- 算法模板之巴什博弈(HDU 1846 Brave Game &amp; HDU 2149 Public Sale)