简单的代码。。

时间复杂度为O((n + m)logn)

大部分情况下还是跑不过kruskal的,慎用。

 #include <cstdio>
#include <queue>
#include <cstring>
#define heap pair<int, int> using namespace std; int n, m, cnt, ans;
int head[], to[], next[], val[];
bool vis[];
priority_queue <heap, vector <heap>, greater <heap> > q; inline void add(int x, int y, int z)
{
to[cnt] = y;
val[cnt] = z;
next[cnt] = head[x];
head[x] = cnt++;
} inline void queue_prim()
{
int i, u, v, tot = n;
heap x;
q.push(make_pair(, ));
while(!q.empty() && tot)
{
x = q.top();
q.pop();
u = x.second;
if(vis[u]) continue;
vis[u] = ;
ans += x.first;
tot--;
for(i = head[u]; i != -; i = next[i])
{
v = to[i];
if(!vis[v]) q.push(make_pair(val[i], v));
}
}
} int main()
{
int i, x, y, z;
memset(head, -, sizeof(head));
scanf("%d %d", &n, &m);
for(i = ; i <= m; i++)
{
scanf("%d %d %d", &x, &y, &z);
add(x, y, z);
add(y, x, z);
}
queue_prim();
printf("%d", ans);
return ;
}

最新文章

  1. Windows程序设计_19_测试Windows应用程序加载函数
  2. 实现DevExpress GridControl 只有鼠标双击后才进行修改数据
  3. 高通AR增强现实Unity3D
  4. rails下react的demo
  5. MVC 构建图片/文件选择器 参考其它CMS功能
  6. JavaScript的Ajax请求示例
  7. G2 DT时代的图形语法 正式发布
  8. 【WEB前端经验之谈】没有速成,只有不断积累。
  9. update openssl on redhat/centos
  10. WMDestroy函数调用inherited,难道是为了调用子类覆盖函数?还有这样调用的?
  11. ZOJ Problem Set - 3758 素数
  12. (五)认识Android中的Service
  13. clone()方法、深复制和浅复制
  14. 【SmartOS】轻量级多任务调度系统
  15. 动手试试Android Studio插件开发
  16. 关于 Be 主
  17. Golang微服务:Micro Trace使用opentracing jaeger
  18. void android.graphics.Bitmap.recycle()
  19. visual studio 2017调试时闪退。
  20. iOS友盟社会化分享U-Share分享面板不显示的问题(基本配置没有错误)

热门文章

  1. Linux上不了网——wget无法解析主机
  2. P1979 华容道 spfa题解
  3. AJPFX浅谈Java 性能优化之垃圾回收(GC)
  4. python2和python3的区别(转)
  5. match,location,history
  6. 开发原生安卓cordova插件(基础)
  7. Android开发二维码之坑
  8. (转)Synopsys工具简介
  9. powerDesigner 把name项添加到注释(comment),完美方案!
  10. 【原创翻译】链接DLL至可执行文件---翻译自MSDN