zoukankan      html  css  js  c++  java
  • POJ1258Agri-Net

    http://poj.org/problem?id=1258

    题意 : john当上了镇长,打算给每个农场都连接网络,需要用最小的成本连接其他所有农场,所以要找最少的纤维连在一起,任何两个农场之间的距离不超过十万。输入n,下面有n行n列,代表着每两个农场的距离,对角线为0,因为自己到自己是为0;

    解题思路 : 这个题要包含所有的农场,赤果果的最小生成树,这个题的话,注意是多组输入还有数组不要开得太小,算法的话prim和kruskal都可以,我用的是prim。

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 #include<algorithm>
     5 using namespace std;
     6 int ans,dis[1001][1001];
     7 const int INF = 1<<29 ;
     8 int vis[1001],n,low[1001];
     9 int prim()
    10 {
    11     memset(vis,0,sizeof(vis));
    12     int i,j,flag,min;
    13     ans = 0 ;
    14     for(i = 1 ; i <= n ; i++)
    15     {
    16         low[i] = dis[1][i];
    17     }
    18     vis[1] = 1 ;
    19     for(i = 1 ; i <= n ; i++)
    20     {
    21         min = INF;
    22         for(j = 1 ;j <= n ; j++)
    23         {
    24             if(min > low[j]&&!vis[j])
    25             {
    26                 min = low[j] ;
    27                 flag = j;
    28             }
    29         }
    30         if(min >= INF)
    31         {
    32             flag = -1 ;
    33             break ;
    34         }
    35         ans+=min ;
    36         vis[flag] = 1 ;
    37         for(j = 1 ; j <= n ; j++)
    38         {
    39             if(dis[flag][j] < low[j] && !vis[j])
    40             low[j] = dis[flag][j];
    41         }
    42     }
    43     return ans ;
    44 }
    45 int main()
    46 {
    47     while(~scanf("%d",&n))
    48     {
    49         for(int i = 1 ; i <= n ; i++)
    50         {
    51             for(int j = 1 ; j <= n ; j++)
    52             {
    53                 cin>>dis[i][j] ;
    54             }
    55         }
    56         ans = prim();
    57         cout<<ans<<endl;
    58     }
    59     return 0 ;
    60 }
    View Code
  • 相关阅读:
    Api记录
    选择排序、冒泡排序、二分查找(折半查找)
    inline关键字
    c++,虚函数,单继承,多继承虚表剖析
    关于类模版迭代器提出时的错误
    关于类模版迭代器提出时的错误2
    菱形继承,多继承,虚继承、虚表的内存结构全面剖析(逆向分析基础)
    VC++错误调试
    引用计数
    选择
  • 原文地址:https://www.cnblogs.com/luyingfeng/p/3256601.html
Copyright © 2011-2022 走看看