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

    int mp[505][505],vis[505]
    int prime(int n)
    {
        int lowcost[505],sum=0;
        for(int i=1;i<=n;i++)
            lowcost[i]=mp[i][1];
        vis[1]=1;
        for(int i=1;i<=n;i++)
        {
            int mi=0x3f,j;
            for(int k=1;k<=n;k++)
                if(!vis[k] && mi>lowcost[k])
                mi=lowcost[k],j=k;
            vis[j]=1;
            sum+=lowcost[j];
            for(int k=1;k<=n;k++)
                if(!vis[k] && lowcost[k]>mp[j][k])
                    lowcost[k]=mp[j][k];
        }
        return sum;
    }
    struct node 
    {
        int u,v,w;
    }e[50050];
    int f[50050];
    void init(void)
    {
        for(int i=1;i<=n;i++)
            f[i]=i;
    }
    int fd(int x)
    {
        return f[x]==x?x:fd[x]=fd(f[x]);
    }
    int uion(int x,int y)
    {
        int fa=fd(x),fb=fd(y);
        if(fa!=fb)f[fa]=fb;
    }
    bool cmp(node a,node b)
    {
        return a.w<b.w;
    }
    int kuskal(void)
    {
        sort(e,e+n);
        int ans=0;
        for(int i=0;i<m;i++)//m为边数
        {
            int u,v,fu,fv;
            u=e[i].u;v=e[i].v;
            fu=fd(u),fv=fd(v);
            if(fu!=fv)
            {
                ans+=e[i].w;
                uion(u,v);
            }
        }
        return ans;
    }
  • 相关阅读:
    HDU 1495 广度优先搜索
    oj 1792:迷宫 广搜和深搜
    oj 1756:八皇后 搜索
    OJ1700 八皇后问题 基本搜索算法
    PAT A1020
    PAT A1103
    PAT A1046 Shortest Distance
    PAT A1059
    PAT B1013
    二分查找
  • 原文地址:https://www.cnblogs.com/weeping/p/5668485.html
Copyright © 2011-2022 走看看