swust.oj.1075
2017-04-12 19:43
267 查看
不想再去写了,去找了一个prim算法的
#include<stdio.h> #include<algorithm> #include<math.h> #include<string.h> #include<iostream> using namespace std; int mp[20][20], n, e; char str[20]; void Prim() { int a[20]; int min; int b[20], i, j, k; for (i = 0; i<n; i++)//给lowcost[]和closest[]置初值 { a[i] = mp[0][i]; b[i] = 0; } for (i = 1; i<n; i++) { min = 101; for (j = 0; j<n; j++)//在(V-U)中找出离U最近的顶点k { if (a[j] != 0 && a[j]<min) { min = a[j]; k = j;//k记录最近顶点的编号 } } cout << "(" << str[b[k]] << "," << str[k] << ")"; a[k] = 0;//标记k已经加入U for (j = 0; j<n; j++)//修改数组lowcost和closest { if (mp[k][j] != 0 && mp[k][j]<a[j]) { a[j] = mp[k][j]; b[j] = k; } } } } int main() { cin >> n >> e >> str; memset(mp, 101, sizeof(mp)); for (int i = 0; i<n; i++) { mp[i][i] = 0; } for (int j = 0; j<e; j++) { char l, r; int w; cin >> l >> r >> w; mp[l - 'A'][r - 'A'] = w; mp[r - 'A'][l - 'A'] = w; } Prim(); return 0; }
相关文章推荐
- swustoj求最小生成树(Prim算法)(1075)
- 【swust.oj_1066】有向图的邻接矩阵存储强连通判断
- 九度OJ 1075: 斐波那契数列
- C++ 花式斐波那契数列(九度OJ 1075)
- swust oj one+two=3(0287)——单词和数字的转化
- 最近点对问题 Swust Oj 794
- [Swust OJ 249]--凸包面积
- [Swust OJ 585]--倒金字塔(LIS最长不下降子序列)
- [Swust OJ 603]--吃饺子大王
- [Swust OJ 1091]--土豪我们做朋友吧(并查集,最值维护)
- [Swust OJ 138]--文件压缩
- [Swust OJ 794]--最近对问题(分治)
- [Swust OJ 385]--自动写诗
- swust.oj 0259
- swust.oj.1013
- swustoj短信(0332)
- 九度OJ 题目1075:斐波那契数列
- 线段树离线 SWUST OJ 2459 Submissions of online judge
- [Swust OJ 781]--牛喝水
- [Swust OJ 746]--点在线上(线段树解法及巧解)