题目链接:https://vjudge.net/problem/HDU-1233

思路:

最小生成树板子。

 #include <iostream>
#include <stdio.h>
#include <queue>
using namespace std; const int N = ;
const int inf = (int)1e9;
int g[N][N];
bool vis[N];
int dis[N];
struct node{
int loc;
int w; bool friend operator<(const node& a,const node& b){
return a.w > b.w;
}
};
priority_queue<node > que; void init(int& n){ for(int i = ; i <= n; i++){ dis[i] = inf;
vis[i] = ;
for(int j = ; j <= n; j++)
if(i == j) g[i][j] = ;
else g[i][j] = inf;
} } int prime(int& n){ while(!que.empty()) que.pop(); que.push(node{,});
dis[] = ; int u;
while(!que.empty()){
u = que.top().loc;
que.pop();
vis[u] = ; for(int v = ; v <= n; v++){
if(!vis[v] && dis[v] > g[u][v]){
dis[v] = g[u][v];
que.push(node{v,dis[v]});
}
}
} int ans = ;
for(int i = ; i <= n; i++) ans += dis[i];
return ans;
} int main(){ int n;
while(~scanf("%d",&n) && n){ int u,v,w;
int len = n*(n-)/; init(n); for(int i = ; i <= len; i++){
scanf("%d%d%d",&u,&v,&w); if(g[u][v] > w)
g[u][v] = g[v][u] = w;
} printf("%d\n",prime(n));
} return ;
}

最新文章

  1. ABP理论学习之领域服务
  2. ListView+CheckBox实现全选 单击效果
  3. Android studio 加速编译方法
  4. jsp_数据库的连接
  5. BZOJ1590 [Usaco2008 Dec]Secret Message 秘密信息
  6. [git/svn]Git和SVN差异
  7. cURL: PHP并发处理方式
  8. ReportViewer中设置ServerReport.ReportServerCredentials属性的方法
  9. POJ3026(BFS + prim)
  10. hdu 亲和串(kmp)
  11. java基本输入类型数据System.out.println()或System.out.print()
  12. Bootstrap学习-排版
  13. LeetCode 572. Subtree of Another Tree (是否是另一个树的子树)
  14. xamarin android viewpager的用法
  15. MySQL数据库开发常见问题及几点优化!
  16. C# 操作文件类,文件夹存在判断,创建,文件内容读写。
  17. 《剑指offer》-判断平衡二叉树
  18. 潭州课堂25班:Ph201805201 爬虫基础 第三课 urllib (课堂笔记)
  19. 方格填数-2015决赛C语言A组第一题
  20. Cloud Foundry 组件

热门文章

  1. 02day-webpack
  2. 浅谈[].slice.call(arguments, 1)
  3. jQuery function函数详解
  4. Redis windows版本资源与安装
  5. linux常用终端命令
  6. 小白专场-堆中的路径-c语言实现
  7. 论文阅读: v-charge项目: 电动车的自动泊车和充电
  8. Flink之state processor api实践
  9. Vue.js 源码分析(二十七) 高级应用 异步组件 详解
  10. linux 修改文件的时间属性