对于标准的矩阵输入使用矩阵作为存储结构可以简化算法的设计。
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
#define NUM 105
int costmatrix[NUM][NUM];
int flag[NUM];
void init(){
for(int index=0;index<NUM;index++){
flag[index]=0;
}
}
int main(){
int n;
while(scanf("%d",&n)!=EOF){
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
scanf("%d",&costmatrix[i][j]);
}
}
int sum=0;
init();
int num=1;
flag[0]=1;
while(num<n){
int mincost=0x7fffffff;
int minnode;
for(int k=0;k<n;k++){
if(flag[k]==1){
for(int kk=0;kk<n;kk++){
if(kk!=k&&flag[kk]==0){
if(costmatrix[k][kk]<mincost){
mincost=costmatrix[k][kk];
minnode=kk;
}
}
}
}
}
sum+=mincost;
flag[minnode]=1;
num++;
}
cout<<sum<<endl;
}
return 0;
}

1911

被折叠的 条评论
为什么被折叠?



