hdu-1233 还是畅通工程---MST模板
2024-09-23 21:20:22
题目链接:
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 ;
}
最新文章
- C++构造函数2
- iOS_直播类app_HTTP Live Streaming
- yii的入口文件index.php中为什么会有这两句
- ASM:《X86汇编语言-从实模式到保护模式》越计卷:实模式下对DMA和Sound Blaster声卡的控制
- Write Your software base on plugin(C/C++ ABI)
- SVN 记录冲突、忽略
- HDU 1560 DNA sequence (IDA* 迭代加深 搜索)
- 学习java随笔第十一篇:java窗体程序
- ORACLE如何停止一个JOB
- yii2安装与初始化-Yii2学习笔记(一)
- HTML5的三种存储方式以及区别
- Object类—复写equals方法,hashCode方法,toString方法
- 【bzoj4008 hnoi2015】 亚瑟王
- [Swift]LeetCode918. 环形子数组的最大和 | Maximum Sum Circular Subarray
- windows 下面必备软件
- cocos2dx开发之util类&;方法——字符串替换
- Struts2的动态Action和全局跳转视图以及配置各项默认值
- Github用.gitignore忽略指定文件
- eclipse热部署配置
- 《剑指offer》第一题(重载赋值运算符)
热门文章
- spring boot jpa 使用<;S extends T>; List<;S>; findAll(Example<;S>; example)查询数据
- 二维偏序 tree
- 在Linux系统下远程连接oracle的防火墙设置
- AT2044 Teleporter
- 洛谷P5058 [ZJOI2004]嗅探器
- 响应式Web
- df 参数说明
- DropDownList 不能绑定多个值错误!
- Luogu P4901 排队 fib数列+树状数组+倍增
- mysql中 if语句的使用