zoukankan      html  css  js  c++  java
  • poj 2395 prime的递归实现

    题目链接:http://poj.org/problem?id=2395

    求最小水桶的大小,每到达一个农村就能把水桶补满。

    可见是用生成最小树,求最大边。

    关于prime个人感觉用递归实现会少一个for的时间。

    本题的坑:输入边的时候要找最小的,不然会出错。

     1 #include<cstdio>
     2 #include<cstring>
     3 using namespace std;
     4 const int inf=0x3f3f3f3f;
     5 const int maxn=2006;
     6 int n,m;
     7 int mp[maxn][maxn];
     8 int dist[maxn];
     9 bool flag[maxn];
    10 int ans;
    11 
    12 void prime2(int nex)
    13 {
    14 
    15     int mark=-1;
    16     for(int j=1;j<=n;j++){
    17         if(!flag[j]){
    18             if(dist[j]>mp[nex][j])
    19                 dist[j]=mp[nex][j];
    20             if(mark==-1) mark=j;
    21             else if(dist[j]<dist[mark]) mark=j;
    22         }
    23     }
    24     if(mark==-1) return ;
    25     if(ans<dist[mark]) ans=dist[mark];
    26     flag[mark]=true;
    27     prime2(mark);
    28 }
    29 
    30 int my_min(int a,int b){ return a<b?a:b;}
    31 
    32 int main()
    33 {
    34     while( ~scanf("%d%d",&n,&m)){
    35         int x,y,z;
    36         memset( mp, inf, sizeof mp);
    37         for(int i=1;i<=m;i++){
    38             scanf("%d%d%d",&x,&y,&z);
    39             mp[x][y]=my_min(mp[x][y],z);
    40             mp[y][x]=mp[x][y];
    41         }
    42         memset( flag, 0, sizeof flag);
    43         for(int i=1;i<=n;i++)
    44             dist[i]=mp[1][i];
    45         flag[1]=true;
    46         ans=0;
    47         prime2(1);
    48         printf("%d
    ",ans);
    49     }
    50     return 0;
    51 }
  • 相关阅读:
    webservice
    AppDomain (转)
    Apache和Nginx防盗链的几种配置方法
    优化PHP代码的40条建议
    file_get_contents无法请求https连接的解决方法
    PHP SPL
    Ubuntu 查看系统信息
    PHP导出Excel
    mysql集群
    配置yum源的两种方法
  • 原文地址:https://www.cnblogs.com/ZQUACM-875180305/p/9328772.html
Copyright © 2011-2022 走看看