zoukankan      html  css  js  c++  java
  • poj 2485

    题意://岛要修路,这个岛上有n个城市,要求修完路后,各城市之间可以相互到达,且修的总路程最短  求所有道路的最长的一段路程

    思路:Kruskal 算法简单的应用

    #include<iostream>
    #include<cstring>
    using namespace std;
    int map[501][501];
    int dist[501];
    int s[501];
    int n;
    void Krudkal()
    {
        int i,j;
        int max=0;
        memset(s,0,sizeof(s));
        for(i=1;i<=n;i++)
            dist[i]=map[1][i];
        s[1]=1;
        for(i=1;i<n;i++)
        {
            int v=-1;
            int min=999999999;
            for(j=1;j<=n;j++)
                if(dist[j]<min&&!s[j])
                {
                    min=dist[j];
                    v=j;
                }
            if(v==-1) break;
            if(min>max) max=min;
            s[v]=1;
            //sum+=dist[v];
            dist[v]=0;
            for(j=1;j<=n;j++)
            {
                if(dist[j]>map[v][j])
                    dist[j]=map[v][j];
            }
        }
        cout<<max<<endl;
    }
    int min(int x,int y)
    {
        if(x<y) return x;
        return y;
    }
    int main()
    {
        int t,i,j;
        //cin>>t;
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d",&n);
            for(i=1;i<=n;i++)
                for(j=1;j<=n;j++)
                {
                    scanf("%d",&map[i][j]);
                }
            for(i=1;i<=n;i++)
                for(j=1;j<=n;j++)
                {
                    int e=min(map[i][j],map[j][i]);
                    map[i][j]=e;
                    map[j][i]=e; 
                }
            Krudkal();
        }
        return 0;
    }
        
  • 相关阅读:
    局部组件
    flex布局
    Websocket
    关于Javascript夜里再来分析下
    go build、go mod等命令
    websocket
    FileSystemWatcher使用
    DataGridView双缓冲
    C#读INI文件
    c 通过 COM接口调用 Excel.Application 问题终于解决
  • 原文地址:https://www.cnblogs.com/zhangdashuai/p/3774697.html
Copyright © 2011-2022 走看看