博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1301 Jungle Roads (最小生成树)
阅读量:6927 次
发布时间:2019-06-27

本文共 1470 字,大约阅读时间需要 4 分钟。

题目:

/************************************************************************//*             hdu  Jungle Roads        最小生成树        题目大意:最小生成树,题目很长,题意很简单就是最小生成树,prim算法模拟*//************************************************************************/#include 
#include
#include
#include
#define MAX 0xfffffffconst int N = 30;int map[N][N];int vis[N];int n;void build_map(){ int t = n; char v,e; int num,len; for (int i = 0; i < n; i++) for (int j = i; j < n; j++) map[i][j] = map[j][i] = ((i==j)?0:MAX); while(--t) { getchar(); v = getchar(); scanf("%d",&num); while(num--) { getchar(); e = getchar(); scanf("%d",&len); map[v-'A'][e-'A'] = map[e-'A'][v-'A'] = len; } }}int prim(){ int t = n; int sum = 0; int min,k; vis[0] = 1; while(--t) { min = MAX; for(int i = 1; i < n; i++) { if (vis[i] != 1 && map[0][i] < min) { min = map[0][i]; k = i; } } vis[k] = 1; sum += min; for (int i = 1; i < n; i++) { if (vis[i] != 1 && map[k][i] < map[0][i]) map[0][i] = map[k][i]; } } return sum;}int main(){ while(scanf("%d",&n) && n != 0) { build_map(); memset(vis,0,sizeof(vis)); printf("%d\n",prim()); } return 0;}

 

转载地址:http://tzkjl.baihongyu.com/

你可能感兴趣的文章
如果通过key获取dictionary里面的value
查看>>
【Java学习笔记】使用split()方法分割字符串
查看>>
我的架构经验系列文章 - 前端架构
查看>>
C#和C++的区别
查看>>
windows server 2003 sp2安装VS2010之后需要打的几个布丁
查看>>
推荐几个我日常使用的IT在线测试工具
查看>>
回合制页游
查看>>
IIS 内部运行机制
查看>>
解决PL/SQL Developer连接数据库时出现 “ORA-12541:TNS:无监听程序”错误。
查看>>
关于完成端口IOCP异步接收连接函数AcceptEx注意事项 (转)
查看>>
Android 编程下两种方式注册广播的区别
查看>>
实现个hash_map容器类玩玩 - 苍梧 - 博客园
查看>>
Max Sum(经典DP)
查看>>
« 静态编译的MySQL易挂起 »
查看>>
关于 Oracle 索引以及 Bitmap 索引 和 B-tree 索引(归档)
查看>>
[zt]提问的艺术
查看>>
Global Cache CR Requested But Current Block Received
查看>>
How to use epoll? A complete example in C
查看>>
JScriptHelper类
查看>>
“万能数据库查询分析器”中英文4.02版本 2013-4-3日已在国内几大软件下载网站发布,敬请使用...
查看>>