题目链接:

http://acm.hdu.edu.cn/showproblem.php?pid=1233

题目大意:

求MST最小生成树

解题思路:

Prim算法直接套即可

 #include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = + ;
const int INF = 1e9 + ;
int Map[maxn][maxn];
int lowcost[maxn], mst[maxn];
int n, m;
void prim(int u)
{
ll ans = ;
for(int i = ; i <= n; i++)
{
lowcost[i] = Map[u][i];
mst[i] = u;
}
mst[u] = -;
for(int i = ; i <= n; i++)
{
int minn = INF;
int v = -;
//寻找lowcost数组里面的未加入mst的最小值
for(int j = ; j <= n; j++)
{
if(mst[j] != - && lowcost[j] < minn)
{
v = j;
minn = lowcost[j];
}
}
if(v != -)
{
mst[v] = -;
ans += lowcost[v];
for(int j = ; j <= n; j++)
{
if(mst[j] != - && lowcost[j] > Map[v][j])
{
lowcost[j] = Map[v][j];
mst[j] = v;
}
}
}
}
printf("%lld\n", ans);
}
int main()
{
while(scanf("%d", &n) != EOF && n)
{
m = n * (n - ) / ;
int u, v, w;
memset(Map, , sizeof(Map));
memset(lowcost, , sizeof(lowcost));
while(m--)
{
scanf("%d%d%d", &u, &v, &w);
Map[u][v] = Map[v][u] = w;
}
prim();
}
return ;
}

最新文章

  1. C++构造函数2
  2. iOS_直播类app_HTTP Live Streaming
  3. yii的入口文件index.php中为什么会有这两句
  4. ASM:《X86汇编语言-从实模式到保护模式》越计卷:实模式下对DMA和Sound Blaster声卡的控制
  5. Write Your software base on plugin(C/C++ ABI)
  6. SVN 记录冲突、忽略
  7. HDU 1560 DNA sequence (IDA* 迭代加深 搜索)
  8. 学习java随笔第十一篇:java窗体程序
  9. ORACLE如何停止一个JOB
  10. yii2安装与初始化-Yii2学习笔记(一)
  11. HTML5的三种存储方式以及区别
  12. Object类—复写equals方法,hashCode方法,toString方法
  13. 【bzoj4008 hnoi2015】 亚瑟王
  14. [Swift]LeetCode918. 环形子数组的最大和 | Maximum Sum Circular Subarray
  15. windows 下面必备软件
  16. cocos2dx开发之util类&amp;方法——字符串替换
  17. Struts2的动态Action和全局跳转视图以及配置各项默认值
  18. Github用.gitignore忽略指定文件
  19. eclipse热部署配置
  20. 《剑指offer》第一题(重载赋值运算符)

热门文章

  1. spring boot jpa 使用&lt;S extends T&gt; List&lt;S&gt; findAll(Example&lt;S&gt; example)查询数据
  2. 二维偏序 tree
  3. 在Linux系统下远程连接oracle的防火墙设置
  4. AT2044 Teleporter
  5. 洛谷P5058 [ZJOI2004]嗅探器
  6. 响应式Web
  7. df 参数说明
  8. DropDownList 不能绑定多个值错误!
  9. Luogu P4901 排队 fib数列+树状数组+倍增
  10. mysql中 if语句的使用