题意:有一个村庄网络(图),求该图的最小生成树
首先输入n代表n个村庄,接下来的n-1行,每行首先输入一个大写字母表示一个村庄,接着输入一个数字num,
表示和村庄连接的点的个数 接下来输入num对大写字母和数字,表示该村庄到另一个村庄的距离。比如:题目的第二组数组
3A 2 B 10 C 40B 1 C 20
表示:有三个村庄
A村庄有两个连通的点B C 其中A--->B 距离10 A--->C 距离40
B村庄有一个联通的点C B--->C 距离20
代码:(prim)
#include#include #include using namespace std;const int MAX=50;const int INF=0x3f3f3f3f; int n,val,num;int dist[MAX];bool vis[MAX];char st[5],en[5];int map[MAX][MAX];int prim(){ for(int i=0;i map[pos][j]) dist[j]=map[pos][j]; } } return ans;}int main(){ while(scanf("%d",&n)!=EOF&&n) { for(int i=0;i