用Kruskal算法解POJ 1251 Jungle Roads代码
来源:互联网 发布:ubuntu 禁用访客 编辑:程序博客网 时间:2024/06/07 22:37
#include<stdio.h>#include<algorithm>using namespace std;struct road{ int x,y,price; //price表示连接 x,y村庄的公路维修费用 };int cmp(road a,road b){ return a.price<b.price;}int deal(int n){ int i,j,k=0,q,p,root[27],js=1,total=0; //k--总边数 q--每一行边数 p--费用 root[]表示根 total--最少费用 road s[80]; char a,b; //a--x, b--y for(i=0;i<n-1;i++){ scanf("\n%c %d ",&a,&q); for(j=0;j<q;j++){ scanf("%c %d ",&b,&p); s[k].x=a-'A', s[k].y=b-'A', s[k++].price=p; //root[b-'A']=a-'A'; } } sort(s,s+k,cmp); //将边数按从小到大排序 for(i=0;i<n;i++) //采用Kruskal算法 每个点指向自己 root[i]=i; /*for(i=0;i<k;i++) //输出查看 printf("%d--%d %d ",s[i].x,s[i].y,s[i].price); printf("\n"); for(i=0;i<n;i++) printf("%d->%d ",i,root[i]); printf("\n--------------------------------\n");*/ int w; for(i=0;i<k&&js<n;i++) if(root[s[i].x]!=root[s[i].y]){ total+=s[i].price; root[root[s[i].y]]=root[s[i].x]; //合并两棵树 for(j=0;j<n;j++){ //更新祖先节点 w=j; while(root[w]!=w) w=root[w]; root[j]=w; } js++; } return total;}int main(){ int n,i,t=1,z[101]; //freopen("Jungle Roads.out","w",stdout); //文件输出 scanf("%d",&n); while(n!=0){ z[t++]=deal(n); //z[t]表示每次处理后的费用 scanf("%d",&n); } for(i=1;i<t;i++) printf("%d\n",z[i]); return 0;}
0 0
- 用Kruskal算法解POJ 1251 Jungle Roads代码
- [POJ 1251]Jungle Roads Kruskal
- POJ 1251 Jungle Roads (kruskal)
- POJ 1251 Jungle Roads (Prim算法)&& (Kruskal算法)
- POj 1251 Jungle Roads (Kruskal算法 + Prim算法)
- POJ-1251-Jungle Roads-最小生成树-Kruskal算法
- poj 1251 Jungle Roads【prim & kruskal】
- POJ 1251Jungle Roads(Kruskal)
- POJ 1251 Jungle Roads(Kruskal)
- POJ 1251 Jungle Roads (最小生成树 Kruskal克鲁斯卡尔算法)
- POJ 1251-Jungle Roads 最小生成树Kruskal
- hdu 1301 Jungle Roads &&poj 1251 (prim 或者kruskal)
- POJ 1251 Jungle Roads(Prim or kruskal)
- poj 1251 Jungle Roads 解题报告(kruskal+prim)
- POJ 1251 Jungle Roads(最小生成树kruskal)
- poj 1251 Jungle Roads (最小生成树--kruskal)
- POJ 1251 Jungle Roads(Prim算法)
- POJ 1251 Jungle Roads
- hdu2053
- Android用户界面基础之ViewGroup学习
- Java内部类
- Oracle Database SQL Language Reference 笔记(3)—— 伪列(续)
- [纯代码必备]为Xcode7 添加空模版 Empty Application
- 用Kruskal算法解POJ 1251 Jungle Roads代码
- 特征工程简介
- (源码)关于A->B*->D的时间序列频繁模式挖掘的思考 1.26更新
- Json数据解析
- C++中的返回值优化(RVO)
- egnaRarofhcraeS.34
- 求三角形面积
- nodejs路由路径参数
- 字符串排序 特殊串结束