题目链接:
//双向图//点的数量小,采用邻接矩阵 //最小生成树prim #include#include #include #define INF 100000using namespace std;const int maxn=30;int dis[maxn];bool vis[maxn];int map[maxn][maxn];int sum,m,b,n;char a,a1;void prim() { int temp; for(int i=1;i<=n;i++) { int cf=INF; for(int j=1;j<=n;j++) { if(!vis[j]&&dis[j] >n&&n) { for(int i=0;i<30;i++) for(int j=0;j<30;j++) { map[i][j]=INF; vis[i]=false; } for(int i=2;i<=n;i++) { cin>>a>>m; while(m--) { cin>>a1>>b; map[a-65+1][a1-65+1]=map[a1-65+1][a-65+1]=b; } } for(int i=1;i<=n;i++) dis[i]=map[i][1]; vis[1]=true; sum=0; prim(); cout< <