zoukankan      html  css  js  c++  java
  • POJ2421 Constructing Roads【最小生成树】

    题意:

    有N个点,有些点已经连接了,然后求出所有点的连接的最短路径是多少。

    思路:

    最小生成树的变形,有的点已经连接了,就直接把他们的权值赋为0,一样的就做最小生成树。

    代码:

    prime:

    #include <cstdio>
    #include <iostream>
    
    using namespace std;
    #define maxn 100+5
    #define inf 0x3f3f3f3f
    
    int maps[maxn][maxn];
    bool vis[maxn];
    int dis[maxn];
    int n;
    
    int Prim()
    {
        for(int i=1;i<=n;i++)
            dis[i] = inf;
        int sum=0;
        dis[1] = 0;
        for(int i=1;i<=n;i++)
        {
            int tmp = inf,k=0;
            for(int j=1;j<=n;j++)
            {
                if(!vis[j]&&dis[j]<tmp)
                {
                    tmp = dis[j];
                    k=j;
                }
            }
            vis[k] = true;
            sum+=tmp;
            for(int i=1;i<=n;i++)
            {
                if(!vis[i]&&dis[i]>maps[k][i])
                    dis[i] = maps[k][i];
            }
        }
        return sum;
    }
    
    int main()
    {
        cin>>n;
        for(int i=1; i<=n; i++)
        {
           for(int j=1; j<=n; j++)
           {
               cin>>maps[i][j];
           }
        }
        int k;
        cin>>k;
        for(int i=0; i<k; i++)
        {
            int a,b;
            cin>>a>>b;
            maps[a][b]=maps[b][a] = 0;
        }
        cout<<Prim()<<endl;
        return 0;
    }
    View Code
  • 相关阅读:
    babel6的babel-plugin-add-module-exports插件
    babel ---- presets字段设定转码规则
    Babel6.x的安装过程
    npm
    JavaScript的数组
    JavaScript的数据类型
    JavaScript
    数据类型详解
    jsp笔记总结
    Servlet学习总结
  • 原文地址:https://www.cnblogs.com/darklights/p/7637580.html
Copyright © 2011-2022 走看看