zoukankan      html  css  js  c++  java
  • 最小生成树

    prim

    int tree() 构造树,a[k]记录第k个节点可以加到当前构造的树的最小路径,每一步加一个最小的a[k]到树里
    {
    for(int i=0;i<n;i++)
    {
    a[i]=maxa;
    }
    a[0]=0;
    for(int i=0;i<n;i++)
    {
    int MIN=maxa;
    int sum=0;
    for(int k=0;i<n;k++)
    {
    if(vis[k]==0&&a[k]<MIN)
    {
    MIN=a[k];
    ii=k;
    }
    }
    vis[ii]=1;
    sum+=a[ii];
    for(int k=0;k<n;k++)
    {
    if(load[ii][k]<a[k])
    a[k]=load[ii][k];
    }
    }
    }
    Kruskal

    int find(int i) 按路径大小由小到大排序,不能有环
    {
    return a[i]=i==a[i]?i;finf(a[i]);
    }

    int unin(int a,int b,int c)
    {
    if(find(a)!=find(b))
    {
    fa[find(a)]=find(b);
    sum+=c;
    }
    }

    struct network
    {
    int x;
    int y;
    int value;

    }net[maxn*maxn];

    bool cmp(network n1,network n2)
    {
    return n1.value<n2.value;
    }

    sort(net,net+k,cmp);

  • 相关阅读:
    面向对象
    ArrayList 集合
    JAVA 方法
    JAVA数组
    JAVA基础2
    JAVA基础1(语法)
    JAVA基础(jdk安装和环境变量的配置)
    数据结构练习题
    多表查询
    数据约束
  • 原文地址:https://www.cnblogs.com/icodefive/p/3599274.html
Copyright © 2011-2022 走看看