#include <bits/stdc++.h>
using namespace std;
const int MAXN = 5005;
const int MAXM = 200005;
int n, m, fir[MAXN], to[MAXM*2], nxt[MAXM*2], w[MAXM*2], cnt, dis[MAXN];
bool vis[MAXN];
#define pii pair<int,int>
#define mp make_pair
priority_queue<pii, vector<pii>, greater<pii> >q;
int MST = 0;
inline void Prim()
{
int tot = 0;
memset(dis, 0x3f, sizeof dis);
q.push(mp(dis[1]=0, 1));
while(!q.empty())
{
int u = q.top().second; q.pop();
if(vis[u]) continue;
vis[u] = 1; MST += dis[u]; tot++;
for(int i = fir[u]; i; i = nxt[i])
if(!vis[to[i]] && w[i] < dis[to[i]])
q.push(mp(dis[to[i]]=w[i], to[i]));
}
if(tot < n) MST = -1;
} inline void Add(int u, int v, int wt)
{
to[++cnt] = v; nxt[cnt] = fir[u]; fir[u] = cnt; w[cnt] = wt;
} int main ()
{
int x, y, z;
scanf("%d%d", &n, &m);
for(int i = 1; i <= m; i++)
scanf("%d%d%d", &x, &y, &z), Add(x, y, z), Add(y, x, z);
Prim();
if(~MST) printf("%d\n", MST);
else puts("orz");
}

最新文章

  1. python之import子目录文件
  2. oracle 日期获取
  3. 利用VS编译libiconv库
  4. 如何使用同一个Action中的不同方法
  5. 轻松学习Linux之内核编译
  6. Python Socket,How to Create Socket Cilent? - 网络编程实例
  7. YII CRUD 例子
  8. jquery html 动态添加元素绑定事件
  9. Android SDK更新缓慢或无法更新的解决方法
  10. .Net 5分钟搞定网页实时监控
  11. doT.js——前端javascript模板引擎问题备忘录
  12. 小程序 表单 获取 formId
  13. CTF杂项之音频隐写
  14. Ubuntu 14.04 升级 nginx/1.8.1
  15. windows7 java环境配置
  16. Pandas 基础(9) - 组合方法 merge
  17. Ember.js 1.0 RC6 发布,JavaScript 框架
  18. ZOJ 3211dream city dp(效率优化)
  19. 开源单点登录系统CAS入门
  20. 简单的js定时器

热门文章

  1. go 渲染数据到文件
  2. Ubuntu下载搜狗输入法
  3. 怎么理解js的原型链继承?
  4. 关于fastjson与jackson在反序列化bool型时的区别
  5. 监听EF执行的sql语句及状态
  6. 怎样用 vue-i18n这个结合vue的$t来实现通过data传值的翻译
  7. Math对象的一些方法
  8. 【方法】list&lt;?&gt; 两个list集合 查找不同元素,求差值
  9. Java 解决Emoji表情过滤问题(转载)
  10. mysql如何让有数据的表的自增主键重新设置从1开始连续自增