当前位置: 代码迷 >> 综合 >> [U]3.1.1 Agri-Net 简单的最小生成树问题Ford
  详细解决方案

[U]3.1.1 Agri-Net 简单的最小生成树问题Ford

热度:67   发布时间:2024-01-20 20:44:21.0

拿以前的代码过来秒掉了,这代码可以作为一块好的模板了.......

/*
ID:sevenst4
LANG:C++
PROG:agrinet
*/
#include<stdio.h>
using namespace std;int main()
{freopen( "agrinet.in","r",stdin );freopen( "agrinet.out","w",stdout );int i,j,k,n,a[101][101];while( scanf( "%d",&n )!=EOF ){for( i=1;i<=n;i++ ){for( j=1;j<=n;j++ )scanf( "%d",&a[i][j] );}int flag[101]={0};int sum=0;flag[1]=1;for( k=1;k<n;k++ ){int min=-1,min_i;for( i=1;i<=n;i++ ){if( flag[i]==0 && ( min==-1||a[1][i]<min ) ){min=a[1][i];min_i=i;}}flag[min_i]=1;for( i=1;i<=n;i++ ){if( flag[i]==0 && a[1][i]>a[min_i][i] )a[1][i]=a[min_i][i];}sum+=a[1][min_i];}printf( "%d\n",sum );}return 0;
}