http://poj.org/problem?id=1287

最小生成树模板题类似的还有:poj1258  hdu1233代码几乎一样;

最小生成树详解

 #include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<math.h>
#include<map>
#define N 110
#define INF 0xfffffff
using namespace std; int ans, n, m, dist[N], maps[N][N], vis[N];//dist[i]代表当前起点到i的最小距离; void Init()
{
for(int i=; i<=n; i++)
{
dist[i] = INF;
vis[i] = ;
for(int j=; j<=n; j++)
if(i==j)
maps[i][j] = ;
else
maps[i][j] = INF;
}
} void Prim(int start)
{
for(int i=; i<=n; i++)
dist[i] = maps[start][i];
vis[start] = ;
for(int i=; i<=n; i++)
{
int Min = INF, index=-; for(int j=; j<=n; j++)
{
if(vis[j]== && Min>dist[j])
{
Min = dist[j];
index = j;
}
}
if(index == -)break;
vis[index] = ;
ans += Min;
for(int j=; j<=n; j++)
{
if(vis[j]== && maps[index][j] < dist[j])
{
dist[j] = maps[index][j];
}
}
}
} int main()
{
int a, b, c;
while(scanf("%d", &n),n)
{
ans=;
Init();
scanf("%d", &m);
for(int i=; i<m; i++)
{
scanf("%d%d%d", &a, &b, &c);
maps[a][b] = maps[b][a] = min(maps[a][b], c);
}
Prim();
printf("%d\n", ans);
}
return ;
}

prim

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<math.h>
#include<map>
#define N 110
#define INF 0xfffffff
using namespace std; int n, f[N], m; struct node
{
int x, y, d;
}a[N*N]; int cmp(node p, node q)
{
return p.d < q.d;
} int Find(int x)
{
if(x != f[x])
f[x] = Find(f[x]);
return f[x];
} int main()
{
int ans, px, py;
while(scanf("%d", &n),n)
{
ans=;
for(int i=; i<=n; i++)
f[i] = i;
scanf("%d", &m);
for(int i=; i<m; i++)
{
scanf("%d%d%d", &a[i].x, &a[i].y, &a[i].d);
}
sort(a, a+m, cmp);
for(int i=; i<m; i++)
{
px = Find(a[i].x);
py = Find(a[i].y);
if(px != py)
{
f[px] = py;
ans+=a[i].d;
}
}
printf("%d\n", ans);
}
return ;
}

Kruskal

Networking---poj1287最小生成树的更多相关文章

  1. POJ1287 Networking【最小生成树】

    题意: 给出n个节点,再有m条边,这m条边代表从a节点到b节点电缆的长度,现在要你将所有节点都连起来,并且使长度最小 思路: 这是个标准的最小生成树的问题,用prim的时候需要注意的是他有重边,取边最 ...

  2. POJ 1287 Networking (最小生成树)

    Networking 题目链接: http://acm.hust.edu.cn/vjudge/contest/124434#problem/B Description You are assigned ...

  3. POJ 1287 Networking(最小生成树)

    题意  给你n个点 m条边  求最小生成树的权 这是最裸的最小生成树了 #include<cstdio> #include<cstring> #include<algor ...

  4. poj 1287 Networking【最小生成树prime】

    Networking Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7321   Accepted: 3977 Descri ...

  5. POJ 1287:Networking(最小生成树Kruskal)

    id=1287">Networking Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 5976   Acce ...

  6. POJ - 1287 Networking 【最小生成树Kruskal】

    Networking Description You are assigned to design network connections between certain points in a wi ...

  7. POJ1287(最小生成树入门题)

    Networking Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7753   Accepted: 4247 Descri ...

  8. POJ 1287 Networking(最小生成树裸题有重边)

    Description You are assigned to design network connections between certain points in a wide area. Yo ...

  9. POJ - 1287 Networking (最小生成树&并查集

    You are assigned to design network connections between certain points in a wide area. You are given ...

  10. 最小生成树练习1(克鲁斯卡尔算法Kruskal)

    今天刷一下水题练手入门,明天继续. poj1861 Network(最小生成树)新手入门题. 题意:输出连接方案中最长的单根网线长度(必须使这个值是所有方案中最小的),然后输出方案. 题解:本题没有直 ...

随机推荐

  1. Cookie利用神器:CookieHacker

    转自evilcos的博客 看到那么多苦逼的跨站师在问Cookie利用工具,不忍心,还是把自己写的Chrome扩展开源出来吧,功能极简,仿造<我的渗透利器>里提到的Original Cook ...

  2. XPath的初步认识

    嘿嘿,最近开始上班,不是过于太忙,而是自己一直在学习一些项目中用到的而我暂时还没接触的知识,WCF,log4等,感觉还没有总结的需要吧,虽然都了解啦,但是暂时还是初步的学习,基础的暂时是知道啦,还没有 ...

  3. linux 下 java 链接oracle数据库

    import java.sql.*; public class Hello { private final String oracleDriverName = "oracle.jdbc.dr ...

  4. 实现iOS中的链式编程

    谈到链式编程,那Masonry几乎就是最经典的代表.如: make.top.equalTo(self.view).offset() 像这样top.equalTo(self.view).offset(6 ...

  5. ldap 测试表设计

    1. ldap_oc_mappings    存储objeckClass 信息 表结构:  Column Desc. id objectClass的唯一标识 name objectClass的名称 k ...

  6. Androidの疑难杂症之加载布局报Error inflating class <unknown>

    android.view.InflateException: Binary XML file line #12: Error inflating class <unknown> 出现这种错 ...

  7. WP8.1学习系列(第五章)——中心控件Hub或透视控件Pivot交互UX

    具有主页菜单(中心或透视控件)的中心应用中心 你可能要设计包含许多功能的应用.当你看着这些功能时,可能会决定将它们整理到独立的区域中.这些区域最终会成为用户要访问的应用的独立部分.你需要设计一个简便的 ...

  8. 【cs229-Lecture4】GLMS:选定指数分布族,如何用它来推导出GLM?

    在Lecture4中有3部分内容: Newton’s method        牛顿方法 Exceponential Family        指数分布族 Generalized Linear M ...

  9. SharpGL学习笔记(十) 常见的光源类型,创建光源

    在OpenGL中,使用光源的特性组合,如颜色,位置,方向等等,可以创建多种不同类型的灯光. 常见的几种灯光类型有: 定向光源(directonal) 定位光源(positional) 衰减光源 聚光灯 ...

  10. sencha touch + Cordova 3.x下载文件

    今天实现了一个文件下载功能,在网上找了下资料发现有些问题. 我用的是小米1s,安卓 4.1.2,cordova 3.5,打包测试运行正常 首先在控制层launch方法中加入以下代码: // 等待加载P ...