zoukankan      html  css  js  c++  java
  • POJ2485Highways

    转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299323790

     

    提示:题意很简单,就是求最小生成树的最大边。继续Prim吧O(∩_∩)O

     

     1 //Memory Time 
    2 //656K 766MS
    3 //思路、解法都和POJ1789基本一致,只是多了一个判定条件
    4
    5 #include<iostream>
    6 using namespace std;
    7
    8 const int inf=65540; //无限大
    9 int dist[501][501];
    10 int n; //村落数量
    11
    12 int prim(void)
    13 {
    14 int s=1;
    15 int m=1;
    16 bool u[501]={false};
    17 u[s]=true;
    18
    19 int min_w;
    20 int point;
    21 int max_in_min=0;
    22
    23 int low_dis[501];
    24 memset(low_dis,inf,sizeof(low_dis));
    25
    26 while(true)
    27 {
    28 if(m==n)
    29 break;
    30
    31 min_w=inf;
    32 for(int i=2;i<=n;i++)
    33 {
    34 if(!u[i] && low_dis[i]>dist[s][i])
    35 low_dis[i] = dist[s][i];
    36 if(!u[i] && min_w>low_dis[i])
    37 {
    38 min_w = low_dis[i];
    39 point=i;
    40
    41 }
    42 }
    43 if(max_in_min<min_w) //寻找最小生成树中的最长路径
    44 max_in_min = min_w;
    45 s=point;
    46 u[s]=true;
    47 m++;
    48 }
    49 return max_in_min;
    50 }
    51
    52 int main(void)
    53 {
    54 int test;
    55 cin>>test;
    56 while(test--)
    57 {
    58 /*Input*/
    59
    60 cin>>n;
    61
    62 int w; //两点间边权(临时变量)
    63 for(int i=1;i<=n;i++)
    64 for(int j=1;j<=n;j++)
    65 cin>>dist[i][j];
    66
    67 /*Prim Algorithm & Output*/
    68
    69 cout<<prim()<<endl;
    70
    71 }
    72 return 0;
    73 }
  • 相关阅读:
    flash player over linux
    chmod 命令
    A*算法
    adb找不到设备
    ubuntu14.04安装wine以及国际版QQ
    linux man
    X-window
    linux file system
    linux command
    directUI
  • 原文地址:https://www.cnblogs.com/lyy289065406/p/2121713.html
Copyright © 2011-2022 走看看