prim模板(hdu1102为例)
来源:互联网 发布:优斗士网络推广效果 编辑:程序博客网 时间:2024/05/01 00:17
#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<iostream>#define N 105#define inf 999999999using namespace std; int n,m; // n代表点的数量,m代表已修建的路的条数int map[N][N]; int dis[N]; int visit[N]; int prim(){ for(int i=1;i<=n;i++) //先把每个点到已经建好的图中的路径置为无穷大 dis[i]=inf; dis[1]=0; //起点为顶点1 for(int j=1;j<=n;j++){ int t=inf,pos; //临时变量:最短路径距离t,和该顶点pos for(int i=1;i<=n;i++){ //查找最短路径'点' if(!visit[i]&&t>dis[i]){ t=dis[i]; pos=i; } } visit[pos]=1; //最短路径点标记为已经访问 for(int i=1;i<=n;i++){ //更新最短路径点 //如果,顶点i未被访问过 //且图中新加入的pos点到i点的距离短于原来图到i点的距离 //且pos到i的点有连通(即不为无穷大),则将i点到图的距离更新. if(!visit[i]&&dis[i]>map[pos][i]&&map[pos][i]!=inf){ dis[i]=map[pos][i]; } } } int temp=0; for(int k=1;k<=n;k++){ temp+=dis[k]; } return temp; } int main(){ int a,b; while(scanf("%d",&n)!=EOF){ memset(map,0x3f,sizeof(map)); memset(visit,0,sizeof(visit)); for(int i=1;i<=n;i++){ //构建图的矩阵 for(int j=1;j<=n;j++){ scanf("%d",&map[i][j]); } } scanf("%d",&m); for(int i=1;i<=m;i++){ //输入已经修建好的路 scanf("%d%d",&a,&b); map[a][b]=0; map[b][a]=0; } int ans=prim(); printf("%d\n",ans); } return 0; }
输入
3
0 990 692
990 0 179
692 179 0
1
1 2
输出
179
来自:http://blog.csdn.net/i_fuqiang/article/details/8244776
阅读全文
0 0
- prim模板(hdu1102为例)
- hdu1102 Constructing Roads(prim模板)
- hdu1102 Constructing Roads(prim)
- hdu1102最小生成树(prim)
- hdu1102——Constructing Roads(prim)
- HDU1102-Constructing Roads-最小生成树(prim模板题)
- HDU1102 Constructing Roads【Prim】
- hdu1102 - Constructing Roads (求最小生成树) (Prim & Kruskal)
- hdu1102 Constructing Roads(最小生成树) prim
- HDU1102 prim 最小生成树
- hdu1102绝对模板
- HDU1102 最小生成树(已构造好部分边)Prim与Kruskal
- 小白的第一篇文章——HDU1102 (最小生成树)Prim算法
- hdu1102 Constructing Roads 最小生成树+prim
- hdu1102 Constructing Roads 最小生成树Prim
- HDU1102 Constructing Roads 解题报告--prim
- hdu1102 Constructing Roads 最小生成树Prim
- HDU1102 Constructing Roads 【最小生成树Prim】
- Easy UI使用记录
- 基础Activity文件
- web.xml里配置load-on-startup的意思
- oracle的数据扫描方式
- 轮廓系数
- prim模板(hdu1102为例)
- IntelliJ Idea 集成svn 和使用
- Android Telephony分析(三) ---- RILJ详解
- jflash合并bin文件
- Spark内存管理
- node常用命令
- C++之try catch 异常处理入门实例
- 逼老板喝火锅锅底 警方接警赶到制止却无端遭打肇事者一伙人围殴
- SSID 服务集标识符(Service Set Identifier)