zoukankan      html  css  js  c++  java
  • HDU 1879 继续畅通工程

    题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1879

    还是最小生成树的模板题

    我用的Prim算法

    View Code
     1 #include<stdio.h>
     2  #include<string.h>
     3  int map[110][110],lowcost[110],visit[110];
     4  #define N 1000000
     5  int prim(int maxminum)
     6  {
     7      int i,sum,j,k,min;
     8      for(i=1;i<=maxminum;i++)
     9      {
    10          lowcost[i]=map[1][i];
    11          visit[i]=0;
    12      }
    13      sum=0;
    14      visit[1]=1;
    15      for(i=1;i<maxminum;i++)
    16      {
    17          min=N;
    18          for(j=1;j<=maxminum;j++)
    19          {
    20              if(visit[j]==0&&lowcost[j]<min)
    21              {
    22                  min=lowcost[j];
    23                  k=j;
    24              }
    25          }
    26         
    27          if(min==N)
    28          break;
    29    visit[k]=1;
    30          sum+=min;
    31          for(j=1;j<=maxminum;j++)
    32          {
    33              if(visit[j]==0&&map[k][j]<lowcost[j])
    34              {
    35                  lowcost[j]=map[k][j];
    36              }
    37          }
    38      }
    39      return sum;
    40  }
    41  int main()
    42  {
    43      int maxmax,maxminum,i,a,b,value,sum,flag;
    44      while(~scanf("%d",&maxminum))
    45      {
    46          if(maxminum==0)
    47          break;
    48          memset(map,N,sizeof(map));
    49          maxmax=(maxminum*(maxminum-1))/2;
    50    for(i=1;i<=maxminum;i++)
    51              map[i][i]=0;
    52          for(i=1;i<=maxmax;i++)
    53          {
    54              scanf("%d%d%d%d",&a,&b,&value,&flag);
    55     if(flag==0)
    56              {
    57      if(value<map[a][b])
    58              {
    59                  map[a][b]=map[b][a]=value;
    60              }
    61     }
    62     else
    63     {
    64      map[a][b]=map[b][a]=0;
    65     }
    66          }
    67          sum=prim(maxminum);
    68          printf("%d\n",sum);
    69      }
    70      return 0;
    71  }
  • 相关阅读:
    sql STUFF用法
    关于原型链
    原生js事件绑定
    http常见7种请求
    关于linux的一些常用的指令
    flex布局详解
    html5 新增元素以及css3新特性
    css浮动以及清除
    css 浮动
    计算机网络
  • 原文地址:https://www.cnblogs.com/timeship/p/2640720.html
Copyright © 2011-2022 走看看