poj1251--Kruskal

时间:2022-10-19 07:59:19
/*
* poj1251-- Kruskal
* date 2014/7/15
* state AC
*/ #include <iostream>
#include <algorithm>
#include <fstream>
#include <cstdio>
#include <cstring> using namespace std; int const MAXN=30+100;
int u[MAXN];
int v[MAXN];
int w[MAXN+50]; int p[MAXN];
int r[MAXN]; int cmp(const int i,const int j)
{
return w[i]<w[j];
} int unionFindSet(int x)
{
return p[x]==x?x:p[x]=unionFindSet(p[x]);
} int Kruskal(int n,int m)
{
int ans=0; //memset(p,0,sizeof(p));
//memset(r,0,sizeof(r)); for(int i=0;i<n;i++)
p[i]=i;
for(int i=0;i<m;i++)
r[i]=i; //mem
sort(r,r+m,cmp);
for(int i=0;i<m;i++)
{
int e=r[i];
int x=unionFindSet(u[e]);
int y=unionFindSet(v[e]);
if(x!=y)
{
ans+=w[e];
p[x]=y;
}
}
return ans;
}
int main()
{
//cout << "Hello world!" << endl;
//freopen("input.txt","r",stdin);
char a[2],b[2];
int c;
int m;
int n;
int edgeNum;
while(scanf("%d",&n))
{
if(n==0)break; memset(u,0,sizeof(u));
memset(v,0,sizeof(v));
memset(w,0,sizeof(w)); edgeNum=0;
for(int i=0;i<n-1;i++)
{
scanf("%s%d",a,&m);
for(int j=0;j<m;j++)
{
scanf("%s%d",b,&c);
u[edgeNum]=a[0]-'A';
v[edgeNum]=b[0]-'A';
w[edgeNum]=c;
edgeNum++;
}
}
//
/*cout<<"edgeNumber: "<<edgeNum<<endl;
for(int k=0;k<edgeNum;k++)
cout<<u[k]<<" "<<v[k]<<" "<<w[k]<<" ";
cout<<"---"<<endl;
*/
cout<<Kruskal(n,edgeNum)<<endl;
}
return 0;
}

poj1251--Kruskal的更多相关文章

  1. POJ1251(Kruskal水题)

    https://vjudge.net/problem/POJ-1251 The Head Elder of the tropical island of Lagrishan has a problem ...

  2. poj1251 Jungle Roads(Prime &vert;&vert; Kruskal)

    题目链接 http://poj.org/problem?id=1251 题意 有n个村庄,村庄之间有道路连接,求一条最短的路径能够连接起所有村庄,输出这条最短路径的长度. 思路 最小生成树问题,使用普 ...

  3. POJ1251 Jungle Roads (最小生成树&amp&semi;Kruskal&amp&semi;Prim)题解

    题意: 输入n,然后接下来有n-1行表示边的加边的权值情况.如A 2 B 12 I 25 表示A有两个邻点,B和I,A-B权值是12,A-I权值是25.求连接这棵树的最小权值. 思路: 一开始是在做莫 ...

  4. POJ1251 Jungle Roads&lpar;Kruskal&rpar;&lpar;并查集)

    Jungle Roads Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 23882   Accepted: 11193 De ...

  5. POJ1251 Jungle Roads Kruskal&plus;scanf输入小技巧

    Jungle Roads The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign ai ...

  6. poj1251 Jungle Roads Kruskal算法&plus;并查集

    时限: 1000MS   内存限制: 10000K 提交总数: 37001   接受: 17398 描述 热带岛屿拉格里山的首长有个问题.几年前,大量的外援花在了村庄之间的额外道路上.但是丛林不断地超 ...

  7. 最小生成树练习1(克鲁斯卡尔算法Kruskal)

    今天刷一下水题练手入门,明天继续. poj1861 Network(最小生成树)新手入门题. 题意:输出连接方案中最长的单根网线长度(必须使这个值是所有方案中最小的),然后输出方案. 题解:本题没有直 ...

  8. POJ-1251 Jungle Roads---MST裸题(需要编号)

    题目链接: https://vjudge.net/problem/POJ-1251 题目大意: 首先给你一个图,需要你求出最小生成树,输入N个节点,用大写字母表示了节点,然后节点与节点之间有权值. 思 ...

  9. 图的生成树(森林)(克鲁斯卡尔Kruskal算法和普里姆Prim算法)、以及并查集的使用

    图的连通性问题:无向图的连通分量和生成树,所有顶点均由边连接在一起,但不存在回路的图. 设图 G=(V, E) 是个连通图,当从图任一顶点出发遍历图G 时,将边集 E(G) 分成两个集合 T(G) 和 ...

  10. 最小生成树---Prim算法和Kruskal算法

    Prim算法 1.概览 普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树.意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (gra ...

随机推荐

  1. mysql练习题-查询同时参加计算机和英语考试的学生的信息-遁地龙卷风

    (-1)写在前面 文章参考http://blog.sina.com.cn/willcaty. 针对其中的一道练习题想出两种其他的答案,希望网友给出更多回答. (0) 基础数据 student表 +-- ...

  2. 为什么使用Junit Test而不用普通java main方法来完成测试&quest;

    因为在程序里边,一个接口对应一个实现方法,而在接口中常常会定义相关的很多方法,所以在测试的时候,如果都在main方法里边进行测试,main方法就会显得臃肿,而且不便于以后其他人测试以及查看测试数据,用 ...

  3. 谷歌浏览器如何查看或获取Cookie字符串

    注:此博客仅供非web开发人员查看,以下内容都基于谷歌浏览器. 在网页空白处点击鼠标右键,在弹出菜单中选择[审查元素],可以看到网页下方出现审查元素相关界面. 在审查元素相关界面,点击[Network ...

  4. Ado&period;net 三&lbrack;SQL注入,DataAdapter,sqlParameter,DataSet&rsqb;

    1.SQL注入:SQL注入攻击是web应用程序的一种安全漏洞,可以将不安全的数据提交给运用程序,使应用程序在服务器上执行不安全的sql命令.使用该攻击可以轻松的登录运用程序. 例如:该管理员账号密码为 ...

  5. nginx应用总结(2)--突破高并发的性能优化

    在日常的运维工作中,经常会用到nginx服务,也时常会碰到nginx因高并发导致的性能瓶颈问题.今天这里简单梳理下nginx性能优化的配置(仅仅依据本人的实战经验而述,如有不妥,敬请指出~) 一.这里 ...

  6. Android SDK下载安装及配置教程

    2017年12月07日 13:33:32 4942 转载自:http://blog.csdn.net/dr_neo/article/details/49870587 Android开发环境搭建可以分为 ...

  7. 关于实时监听input的值得变化的问题

    onchange 关于input的onchange事件  其实是有出发条件的  并非实时监听的 1.鼠标点击事件  或者键盘事件(tab和wins键都可以触发  enter在ie9时不触发,火狐和ch ...

  8. 【表单验证】基于jQuery的高度灵活的表单验证(无UI)

    表单验证是前端开发过程中常见的一个需求,产品需求.业务逻辑的不同,表单验证的方式方法也有所区别.而最重要的是我们要清楚,表单验证的核心原则是--错误信息提示准确,并且尽可能少的打扰/干扰用户的输入和体 ...

  9. Pyrhon代码的中文问题

    解决代码中出现中文乱码的问题: 使用中文需要在第一行声明编码#encoding=utf-8 或者#coding=utf-8 python只检查#.coding和编码字符串,所以你可能回见到下面的声明方 ...

  10. &period;ne 基础&lpar;2&rpar;

    类是一种抽象 抽象的概念,具体的实例. 现实是先有对象,再抽象成类,再用类来创建实例 构造方法 (1)如果写好了类,不写构造方法,系统会默认一个无参的构造方法 (2) 如果手动添加了一个 构造方法,就 ...

相关文章