/*

杭电2011和2012级同学如何加入ACM集训队? 微软招聘信息(主要针对已经有工作经验的)

还是畅通工程

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 16025    Accepted Submission(s): 7250

Problem Description
某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。
Input
测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行对应村庄间的距离,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间的距离。为简单起见,村庄从1到N编号。 当N为0时,输入结束,该用例不被处理。
Output
对每个测试用例,在1行里输出最小的公路总长度。
Sample Input
3 1 2 1 1 3 2 2 3 4 4 1 2 1 1 3 4 1 4 1 2 3 3 2 4 2 3 4 5 0

*/

#include<iostream>

using namespace std;

#define INF 0x3f3f3ff

const int MAX_V_NUM=105;

int Edges[MAX_V_NUM][MAX_V_NUM];

struct Node{

int adjvex;//存储该边依附在U中的顶点

int lowcost;//边的权值,访问标记

}closedge[MAX_V_NUM];

int prim(int u,int n)

{

int i,j,k,min,sum=0;

for(i=1;i<=n;i++)

{

closedge[i].adjvex=u;

closedge[i].lowcost=Edges[u][i];

}

closedge[u].lowcost=-1;

for(i=1;i<n;i++)

{

min=INF;

for(j=1;j<=n;j++)

if(closedge[j].lowcost!=-1&&closedge[j].lowcost<min)

{

min=closedge[j].lowcost;

k=j;

}

//cout<<"("<<closedge[k].adjvex<<","<<k<<","<<min<<")"<<endl;

sum+=min;

closedge[k].lowcost=-1;

for(j=1;j<=n;j++)//修改其他顶点的最小边

{

if(Edges[k][j]!=0&&Edges[k][j]<closedge[j].lowcost)

{

closedge[j].adjvex=k;

closedge[j].lowcost=Edges[k][j];

}

}

}

cout<<sum<<endl;

return 0;

}

int main()

{

int n,i,j,u,v,w;

while(true)

{

cin>>n;

if(n==0)

break;

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

{

if(i==j)

Edges[i][j]=0;

else

Edges[i][j]=INF;

}

for(i=1;i<=(n*(n-1))/2;i++)

{

cin>>u>>v>>w;

Edges[u][v]=Edges[v][u]=w;

}

prim(1,n);

}

return 0;

}

转载于:https://www.cnblogs.com/-wang-xin/archive/2012/11/27/2791158.html

还是畅通工程1233相关推荐

  1. Kruskal HDOJ 1233 还是畅通工程

    题目传送门 1 /* 2 最小生成树之kruskal算法--并查集(数据结构)实现 3 建立一个结构体,记录两点和它们的距离,依照距离升序排序 4 不连通就累加距离,即为最小生成树的长度 5 */ 6 ...

  2. HDU 1233 还是畅通工程(最小生成树 Prim+Kruskal)

    原题地址 http://acm.hdu.edu.cn/showproblem.php?pid=1233 题意:(最小生成树裸题)有N个村庄,给出村庄两两之间的距离,要求铺设公路,使得任何两个村庄间都可 ...

  3. 畅通工程 HDU - 1233 

    某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可 ...

  4. 还是畅通工程(1233 并查集+kruskal)

    还是畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  5. HDOJ 1233 还是畅通工程

    实在伤心,一口气A了三个畅通工程,太简单的原因把.这个畅通工程求的是最小的公路长度,就是最小生成树,点太少无向图,prim就好了. #include<stdio.h> #include&l ...

  6. hdu 1233 还是畅通工程 最小生成树(prim算法 + kruskal算法)

    还是畅通工程                                                                            Time Limit: 4000/2 ...

  7. HDU 1233 还是畅通工程(最小生成树)

    传送门 还是畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

  8. HDU 1233 - 还是畅通工程

    Problem Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直 ...

  9. hdu 1879 继续畅通工程 最小生成树

    继续畅通工程                                                                             Time Limit: 2000/ ...

最新文章

  1. android 8.0 intent,Android 8.0通知栏适配问题
  2. 文巾解题 810. 黑板异或游戏
  3. python修复不了_修复 Python version 2.6 required, which was not found in the registry.
  4. 常搓八个部位可以防衰老 - 健康程序员,至尚生活!
  5. 理解工作流系统参考模型
  6. MySQL数据库之互联网常用架构方案(全)
  7. Premiere无法导入webm格式视频的解决方法
  8. 【Proteus仿真】PCF8591 AD电压采集8X8点阵显示
  9. ping 端口是否开放(Mac、Linux、Windows系统)
  10. Ubuntu配置locale
  11. 山寨美图秀秀的美肤功能----实现过程
  12. PS知识点大总结(二)——通道蒙版与图形图标设计
  13. 你必须知道alexa排名的重要性
  14. 内网穿透的概念及解决方案
  15. 2022年全球市场火锅燃料总体规模、主要生产商、主要地区、产品和应用细分研究报告
  16. Spring IOC详解 以及 Bean生命周期详细过程 可以硬刚面试官的文章
  17. SSD固态硬盘的安装优化点点收集
  18. [STM32] Mac开发STM32之Makefile
  19. 【计算机网络课程设计】TCP协议包自动生成工具【蒙混过关版】
  20. java的一个简单小游戏

热门文章

  1. php成品网站安装,PHPweb成品网站安装环境要求和安装方法
  2. Java二十三种设计模式 之代理(proxy)
  3. 经验 | 在C++平台上部署PyTorch模型流程+踩坑实录
  4. 深度学习(五十三)对抗网络
  5. 标签传播(阅读笔记)
  6. hikari数据源配置类_SpringBoot多数据源配置详解
  7. angularjs上传文件到服务器,AngularJS:如何使用multipart表单实现简单的文件上传?...
  8. c# 计算空格宽度像素_分享计算机视觉之图像处理Python之opencv
  9. 系统集成项目管理工程师教程第二版
  10. 马斯克谈买比特币:当法币实际利率为负时 只有“傻子”才不放眼他处