今天是个阴天,下了点雨,work .........

步骤:将所有边排序,然后不断从小到大加上边,这个过程最重要的是避免环的产生,此处用并查集。(nyoj 38)

 package 最小生成树;

 import java.util.Arrays;
import java.util.Scanner;
class Node implements Comparable<Node>
{
int x;
int y;
int val;
public Node(int x,int y,int val)
{
this.x=x;
this.y=y;
this.val=val;
}
@Override
public int compareTo(Node o) {
return this.val-o.val;
} } public class Main { public static void init(int a[])//并查集初始化,用来判断是否有环
{
for(int i=1;i<a.length;i++)a[i]=i; }
public static int find(int a[],int x) //查找节点的父亲,没有优化的方法
{
while(a[x]!=x)
{
x=a[x];
} return x;
}
public static boolean union(int a[],int x,int y)//union一条边
{
int fx=find(a, x);
int fy=find(a, y);
if(fx!=fy)
{
a[fx]=fy;
return true; //成功加入 }
return false;//成环 } public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scn=new Scanner(System.in);
int len=scn.nextInt();
while(len-->0)
{
int ans=0;//保存最后的答案
int v=scn.nextInt();
int e=scn.nextInt();
Node n[]=new Node[e];
for(int i=0;i<e;i++)
{
n[i]=new Node(scn.nextInt(),scn.nextInt(),scn.nextInt()); } Arrays.sort(n);
//并查集的初始化
int father[]=new int[v+1];
init(father);
int index=0;
for(int i=0;i<e;i++)
{
if(union(father, n[i].x,n[i].y))
{ index++; //没成环,加入这条边
ans+=n[i].val; }
if(index==v-1)
{
break;
} }
int min=scn.nextInt(); for(int j=1;j<v;j++)
{
int temp=scn.nextInt();
if(min>temp) min=temp; }
System.out.println(ans+min); } } }

最小生成树之kruskal方法实现 (java)的更多相关文章

  1. 数据结构与算法--最小生成树之Kruskal算法

    数据结构与算法--最小生成树之Kruskal算法 上一节介绍了Prim算法,接着来看Kruskal算法. 我们知道Prim算法是从某个顶点开始,从现有树周围的所有邻边中选出权值最小的那条加入到MST中 ...

  2. 最小生成树的Kruskal算法实现

    最近在复习数据结构,所以想起了之前做的一个最小生成树算法.用Kruskal算法实现的,结合堆排序可以复习回顾数据结构.现在写出来与大家分享. 最小生成树算法思想:书上说的是在一给定的无向图G = (V ...

  3. 最小生成树之Kruskal算法

    用Kruskal方法解决无向连通图最小生成树问题: 1所有的点初始化的时候自成一个集合 2所有的边按照权值大小,从小到大排序 3选取权值小的边加入现有集合中,且加入后必须不构成环路,加入后,记录点的祖 ...

  4. 最小生成树之Kruskal

    模板题,学习一下最小生成树的Kruskal算法 对于一个连通网(连通带权图,假定每条边上的权均为大于零的实数)来说,每棵树的权(即树中所有边的权值总和)也可能不同 具有权最小的生成树称为最小生成树 生 ...

  5. ZOJ 1203 Swordfish 旗鱼 最小生成树,Kruskal算法

    主题链接:problemId=203" target="_blank">ZOJ 1203 Swordfish 旗鱼 Swordfish Time Limit: 2 ...

  6. 记一次使用修改字节码的方法解决java.lang.NoSuchMethodError

    接兔兔国际sdk ane 充值界面选择兔币充值就会闪退, 观察logcat 04-19 10:10:54.224: E/AndroidRuntime(20315): FATAL EXCEPTION: ...

  7. JAVA写JSON的三种方法,java对象转json数据

    JAVA写JSON的三种方法,java对象转json数据 转自:http://www.xdx97.com/#/single?bid=5afe2ff9-8cd1-67cf-e7bc-437b74c07a ...

  8. 经典问题----最小生成树(kruskal克鲁斯卡尔贪心算法)

    题目简述:假如有一个无向连通图,有n个顶点,有许多(带有权值即长度)边,让你用在其中选n-1条边把这n个顶点连起来,不漏掉任何一个点,然后这n-1条边的权值总和最小,就是最小生成树了,注意,不可绕成圈 ...

  9. maven 在clean package时,出现:找不到符号 [ERROR] 符号: 方法 sqlDdlFilter(java.lang.String) 解决办法

    另一个项目中增加了,sqlDdlFilter 在调用的项目中clean package时,出现 找不到符号[ERROR] 符号: 方法 sqlDdlFilter(java.lang.String) 原 ...

随机推荐

  1. 关于Weblogic连接池的TestConnectionOnReserve

        由于最近某客户的系统性能比较差,所以今天又上去跟踪了一下.看了一下Default Data Cache,发现已经从10G调整到了20G,所以可以确定应该是客户的管理员已经将双机从低配置的机器切 ...

  2. Vm image download resource

    http://vmdepot.msopentech.com/List/Index http://www.hanselman.com/blog/Over400VirtualMachineImagesOf ...

  3. css3 Transition动画执行时有可能会出现闪烁的bug

    css3 Transition动画执行时有可能会出现闪烁的bug,一般出现在开始的时候. 解决方法: 1.-webkit-backface-visibility: hidden; 2.-webkit- ...

  4. MongoDB 权限认证

    MongoDB已经使用很长一段时间了,基于MongoDB的数据存储也一直没有使用到权限访问(MongoDB默认设置为无权限访问限制),因为考虑到数据安全的原因特地花了一点时间研究了一下,网上搜出来的解 ...

  5. datanode无法连接到master

    初次在VM上配置Hadoop,开了三台虚拟机,一个作namenode,jobtracker 另外两台机子作datanode,tasktracker 配置好后,启动集群 通过http://localho ...

  6. [转载]C# 多选功能(checkedListBox控件)

    // 全选; private void btn_allSelected_Click(object sender, EventArgs e) { //this.CheckedListBox1.Check ...

  7. 关于Jquery中ajax方法data参数用法的总结

    data 发送到服务器的数据.将自动转换为请求字符串格式.GET 请求中将附加在 URL 后.查看 processData 选项说明以禁止此自动转换.必须为 Key/Value 格式.如果为数组,jQ ...

  8. Universal Asynchronous Receiver/Transmitter

    USART簡介與特性 NRZ標準資料格式(Mark/Space) 半雙工/全雙工 Synchronous 同步傳輸 CLOCK SKEW Asynchronous 非同步傳輸 半/全雙工.同步/非同步 ...

  9. 【Linux安全】防止 root 用户远程登录

    防止 root 用户远程登录,在终端输入以下命令: vim /etc/ssh/sshd_config 修改如下行为:no PermitRootLogin no 如图所示:

  10. codeigniter 分页类练习

    controller page页: <?php class Blog extends CI_Controller{ public function __construct(){ parent:: ...