风萧萧兮易水寒,壮士要去敲代码。本女子开学后再敲了。。最小生成树练习3(普里姆算法Prim)

poj1258 Agri-Net(最小生成树)水题。

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 using namespace std;
 5 const int inf=0x3f3f3f3f;
 6 const int N=101;
 7 int n,m;
 8 int g[N][N],low[N];
 9 void prim(int u0){
10     int i,j,mi,v,ans=0;
11     for(i=0;i<n;++i){
12         low[i]=g[u0][i];
13     }
14     low[u0]=-1;
15     for(i=1;i<n;++i){
16         mi=inf;
17         v=-1;
18         for(j=0;j<n;++j)
19             if(low[j]!=-1&&low[j]<mi){
20                 v=j; mi=low[j];
21             }
22         ans+=low[v];
23         low[v]=-1;
24         for(j=0;j<n;++j){
25             if(g[v][j]<low[j]){
26                 low[j]=g[v][j];
27             }
28         }
29     }
30     printf("%d\n",ans);
31 }
32 int main(){
33     int t,i,j;
34     while(scanf("%d",&n)==1){
35         memset(g,inf,sizeof(inf));
36         for(i=0;i<n;++i)
37             for(j=0;j<n;++j)
38             scanf("%d",&g[i][j]);
39         prim(0);
40     }
41     return 0;
42 }
View Code

相关文章:

  • 2021-10-01
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-19
  • 2021-11-18
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-06-19
  • 2021-09-19
  • 2021-12-28
  • 2022-01-16
  • 2021-05-30
相关资源
相似解决方案