prime,模版
#include"stdio.h" #include"string.h" #define INF 9999999 int map[101][101],f[101],mark[101],n; void prime() { int i,j,k,min,ans; memset(mark,0,sizeof(mark)); for(i=0;i<n;i++) f[i]=map[0][i]; f[0]=0;mark[0]=1; ans=0; for(i=1;i<n;i++) { min=INF; for(j=0;j<n;j++) { if(!mark[j]&&f[j]<min) { min=f[j];k=j; } } ans+=min; mark[k]=1; for(j=0;j<n;j++) { if(f[j]>map[k][j]&&!mark[j]) f[j]=map[k][j]; } } printf("%d\n",ans); } int main() { int i,j; while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) { for(j=0;j<n;j++) scanf("%d",&map[i][j]); } prime(); } return 0; }