杭电ACM1301——Jungle Roads~~最小生成树
来源:互联网 发布:什么叫做js事件event 编辑:程序博客网 时间:2024/05/17 02:36
这题,简单的最小生成树问题。
只是输入的时候比较麻烦,一开始的N,是村庄的个数,下面N - 1 条信息,一开始的大写字母S和数K,是S村庄有K条路连接,后面是K个村庄以及权值。
处理好了输入的数据,就很简单了。
下面的是AC的代码:
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;class data{public:int from, to, cost;};data Road[100];int n, count1;int par[30];int cmp(data &a, data &b) //权值从小到大排{return a.cost < b.cost;}int finds(int x) //并查集查找函数{if(par[x] == x)return x;elsereturn par[x] = finds(par[x]);}void unite(int x, int y) //合并函数{x = finds(x);y = finds(y);if(x == y)return;elsepar[y] = x;}int same(int x, int y) //判断是否属于同一个并查集{return finds(x) == finds(y);}int solve() //构造最小生成树函数{int res = 0;for(int i = 0; i < count1; i++){data d = Road[i];if(!same(d.from, d.to)){unite(d.from, d.to);res += d.cost;}}return res;}int main(){//freopen("data.txt", "r", stdin);int i, j, k, a, w;char s;while(scanf("%d", &n) != EOF && n) //输入的处理{getchar();count1 = 0;for(i = 0; i < 30; i++)par[i] = i;for(i = 0; i < n - 1; i++){scanf("%c%d", &s, &k);a = s - 'A';getchar();for(j = 0; j < k; j++){scanf("%c%d", &s, &w);Road[count1].from = a; Road[count1].to = s - 'A'; Road[count1].cost = w;count1++;getchar();}}sort(Road, Road + count1, cmp);int ans = solve();printf("%d\n", ans);}return 0;}
0 0
- 杭电ACM1301——Jungle Roads~~最小生成树
- 杭电 1301 Jungle Roads 【最小生成树&&Kruskal】
- 杭电-1301Jungle Roads(最小生成树)
- 杭电10301-Jungle Roads(最小生成树问题)
- 杭电1301--Jungle Roads(最小生成…
- hdu1301——Jungle Roads——最小生成树
- hdu 1301——Jungle Roads(最小生成树)
- Jungle Roads(prime——最小生成树)
- Jungle Roads(最小生成树)
- Jungle Roads 最小生成树
- 最小生成树模板——Jungle Roads,Constructing Roads为例
- ZOJ 1406 Jungle Roads (最小生成树)
- zoj 1406 Jungle Roads 最小生成树
- zoj1406----------Jungle Roads 最小生成树 prim
- POJ 1251 Jungle Roads 最小生成树
- ZOJ 1406 Jungle Roads (最小生成树)
- HDU 1301 Jungle Roads 最小生成树
- poj 1251 Jungle Roads ---最小生成树
- 黑马程序员——函数、递归函数
- Xcode4使用技巧
- 通过简单的方法适应iOS7中的UIViewController,同时兼容iOS6
- iOS证书--开发证书(Development)的申请
- Spring单例与线程安全小结
- 杭电ACM1301——Jungle Roads~~最小生成树
- [算法]代码运行时间增长数量级对比 线性级别N vs 线性对数级别 NlgN
- 学习Python3(随机数)
- HTTP协议学习系列--深入理解HTTP协议
- MyEclipse中配置struts.xml自动提示的方法
- iPhone开发常问的十个问题(2012年3月版)
- Spring并发访问的线程安全性问题
- tableview2222
- 解决Activity启动黑屏及设置android:windowIsTranslucent不兼容activity切换动画问题