最小生成树_prim
2016-03-13 16:28
239 查看
<pre name="code" class="cpp"><pre name="code" class="cpp">#include<cstdio> #include<iostream> #define inf 88888888 using namespace std; int map[500][500],path[505]; int n; void prim(int x) { int dis[101],i,j,k,minn; for(i=1;i<=n;i++) {dis[i]=map[i][x];path[i]=x;} for(i=1;i<=n-1;i++) { minn=inf; for(j=1;j<=n;j++) if((dis[j]!=0)&&(dis[j]<minn)) {minn=dis[j];k=j;}; dis[k]=0; for(j=1;j<=n;j++) if(dis[j]>map[j][k]) {dis[j]=map[j][k];path[j]=k;} } } int main(){ int i,j,x,y,len,tot=0,m; char ch; cin>>n; for(i=1;i<=n;i++)//初始化 for(j=1;j<=n;j++) if(i!=j)map[i][j]=inf; for(i=1;i<=n-1;i++)//init { cin>>ch;scanf("%d",&m); x=int(ch)-int('A')+1; for(j=1;j<=m;j++) { cin>>ch;scanf("%d",&len); y=int(ch)-int('A')+1; map[x][y]=len; map[y][x]=len; } } prim(1); for(i=1;i<=n;i++) { if(path[i]!=i) { tot=tot+map[i][path[i]]; } } cout<<tot; }
相关文章推荐
- C语言文件实现学生成绩管理
- MFC 在静态文本控件和picture控件上显示位图
- MSSQLServer知识点总结:DDL(create,alter,drop,declare)-未完整
- 复选框应用及遇到的问题
- 3月13日 抽奖活动
- 使用工厂模式与泛型对三层架构的每一层进行解耦
- 编写一个程序,输出当年的月历。
- HDU 5643 bestcoder Round #75 king's game [威瑟夫问题]
- HTML标签语法与文件的基本结构
- intelij IDEA 中 Maven 插件错误
- Python多线程中join函数与setDaemon函数使用说明
- LInux Tcp 延迟确认问题
- LNMP搭建,nginx整合php-fpm即fastCGI实现,以及nginx的多虚拟主机配置
- 第二周学习进度情况
- 编写一个程序,输出当年的月历。
- Python多线程中join函数与setDaemon函数使用说明
- Tomcat启动过程(二):EndPoint解析
- Android 自定义滑动容器View(2)
- TCP协议详解
- 235. Lowest Common Ancestor of a Binary Search Tree