POJ 1258 Agri-Net(Prim)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ 1258 Agri-Net(Prim)相关的知识,希望对你有一定的参考价值。
#include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> #include<string> #include<cstdlib> #include<vector> using namespace std; typedef long long ll; const int INF=10e7; const int MAXN=110; int cost[MAXN][MAXN]; int lowcost[MAXN]; bool vis[MAXN]; int Prim(int n) { int ans=0; int minn,k; memset(vis,0,sizeof(vis)); vis[1]=1; for(int i=1;i<=n;i++) lowcost[i]=cost[1][i]; for(int i=1;i<=n-1;i++) { minn=INF;k=-1; for(int j=1;j<=n;j++) if(!vis[j]&&minn>lowcost[j]) { minn=lowcost[j]; k=j; } if(k==-1) break; ans+=minn;vis[k]=1; for(int j=1;j<=n;j++) if(!vis[j]&&lowcost[j]>cost[k][j]) lowcost[j]=cost[k][j]; } return ans; } int main() { int n; while(~scanf("%d",&n)) { for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) scanf("%d",&cost[i][j]); printf("%d\n",Prim(n)); } return 0; }
以上是关于POJ 1258 Agri-Net(Prim)的主要内容,如果未能解决你的问题,请参考以下文章