zoukankan      html  css  js  c++  java
  • HDU 1102 Constructing Roads HDU1863 畅通工程

    这两个题都是畅通工程的。杭电上真是各种畅通工程。

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

    还是用的Prim算法。

    View Code
     1 #include<stdio.h>
     2  #include<string.h>
     3  #define N 1000000
     4  int map[110][110],lowcost[110];
     5  int visit[110];
     6  int prim(int maxminum)
     7  {
     8      int sum=0,min,k,i,j;
     9      memset(visit,0,sizeof(visit));
    10      visit[1]=true;
    11      for(i=1;i<=maxminum;i++)
    12          lowcost[i]=map[1][i];
    13      for(i=1;i<=maxminum;i++)
    14      {
    15          min=N;
    16          for(j=1;j<=maxminum;j++)
    17          {
    18              if(visit[j]==0&&min>lowcost[j])
    19                 {
    20                     min=lowcost[j];
    21                     k=j;
    22                 }
    23          }
    24          visit[k]=1;
    25          if(min==N)
    26              break;
    27          sum+=min;
    28          for(j=1;j<=maxminum;j++)
    29             {
    30                 if(visit[j]==0&&lowcost[j]>map[k][j])
    31                  lowcost[j]=map[k][j];
    32             }
    33      }
    34      return sum;
    35  }
    36  int main()
    37  {
    38      int a,b,value,i,maxminum,maxmax,j,sum;
    39      while(~scanf("%d",&maxminum))
    40      {
    41          memset(map,N,sizeof(map));
    42          for(i=1;i<=maxminum;i++)
    43             for(j=1;j<=maxminum;j++)
    44              {
    45                 scanf("%d",&value);
    46                 if(value<map[i][j])
    47                     map[i][j]=map[j][i]=value;
    48             
    49              }
    50          scanf("%d",&maxmax);
    51          while(maxmax--)
    52          {
    53              scanf("%d%d",&a,&b);
    54              map[a][b]=map[b][a]=0;
    55          }
    56          sum=prim(maxminum);
    57          printf("%d\n",sum);
    58      }
    59      return 0;
    60  }

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

    继续Prim

    View Code
     1 #include<stdio.h>
     2 #include<string.h>
     3 int map[110][110],lowcost[110],visit[110];
     4 #define N 9999999
     5 int maxminum,sum,maxmax;
     6 void prim()
     7  {
     8      int i,j,k,min;
     9      for(i=1;i<=maxminum;i++)
    10      {
    11          lowcost[i]=map[1][i];
    12          visit[i]=0;
    13      }
    14      sum=0;
    15      visit[1]=1;
    16      for(i=1;i<maxminum;i++)
    17      {
    18          min=N;
    19          for(j=1;j<=maxminum;j++)
    20          {
    21              if(visit[j]==0&&lowcost[j]<min)
    22              {
    23                  min=lowcost[j];
    24                  k=j;
    25              }
    26          }
    27          if(min==N)
    28          {
    29     printf("?\n");
    30     return;
    31    }
    32    sum+=min;
    33    visit[k]=1;
    34          for(j=1;j<=maxminum;j++)
    35          {
    36              if(visit[j]==0&&map[k][j]<lowcost[j])
    37              {
    38                  lowcost[j]=map[k][j];
    39              }
    40          }
    41      }
    42      printf("%d\n",sum);
    43  }
    44  int main()
    45  {
    46      int i,j,a,b,value;
    47      while(~scanf("%d%d",&maxmax,&maxminum))
    48      {
    49          if(maxmax==0)
    50          break;
    51          memset(map,N,sizeof(map));
    52    for (i=0; i<=maxminum; i++)
    53             map[i][i]=0;
    54          for(i=0;i<maxmax;i++)
    55          {
    56              scanf("%d%d%d",&a,&b,&value);
    57              if(value<map[a][b])
    58              {
    59                  map[a][b]=map[b][a]=value;
    60              }
    61          }
    62          prim();
    63      }
    64      return 0;
    65  } 

    实话来说 Prim肯定不如Kruskal好用,感觉K跟并查集很像。

  • 相关阅读:
    MFC CDialog/CDialogEx DoModal ALT
    yum和apt-get用法及区别
    ubuntu 12.04 source.list 源更新
    elasticsearch 优化
    TRIE树
    数据统计经验浅谈
    机器学习
    python 读取libsvm文件
    spark 参数调优
    python中的一些函数
  • 原文地址:https://www.cnblogs.com/timeship/p/2640732.html
Copyright © 2011-2022 走看看