首页 > 代码库 > 最小生成树一·Prim算法
最小生成树一·Prim算法
#include<iostream>#include<algorithm>#include<cstdio>#include<cstdlib>#include<queue>#include<vector>#include<cstring>#include<cmath>using namespace std;typedef long long ll;#define N 1005#define Max 11111int mmap[N][N];int tem[N];int main(){ int n,len; while(~scanf("%d",&n)){ for(int i=0; i<n; i++){ for(int j=0; j<n; j++){ scanf("%d",&mmap[i][j]); } } len=0; for(int i=0; i<n; i++)tem[i]=mmap[0][i]; mmap[0][0]=-1; for(int kk=1; kk<n; kk++){ int x=Max,y; //cout<<"!!!"<<endl; for(int i=0; i<n; i++){ if(mmap[i][0]!=-1&&x>tem[i]){x=tem[i]; y=i;} } len+=x; //cout<<y<<endl; for(int i=0; i<n; i++)if(mmap[i][0]!=-1)tem[i]=min(tem[i],mmap[y][i]); mmap[y][0]=-1; } printf("%d\n",len); } return 0;}
最小生成树一·Prim算法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。