时间限制: 
10000ms

单个测试点时间限制: 
1000ms

内存限制: 
512000kB
描述

华北电力大学可以抽象为一张有n个点m条边的无向图.

现在所有的边都断了. 修复每条边都有个不同的代价w_i.

求让所有点都能互相到达的最小代价和.

输入
第一行两个正整数 n, m 表示顶点数和边数

接下来m行每行三个正整数 u v w 表示一条边 (u和v是边的端点, w是边权)

输出
输出一行一个正整数表示答案
样例输入
2 2
1 2 2
2 1 3
样例输出
2
提示
n ≤ 10^5, m ≤ 3*10^5, w ≤ 10^4 保证有解
来源
laekov
 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
const int MAXN=;
const int maxn=0x3f;
void read(int &n)
{
char c='+';int x=;bool flag=;
while(c<''||c>''){c=getchar();if(c=='-')flag=;}
while(c>=''&&c<='')
x=(x<<)+(x<<)+c-,c=getchar();
flag==?n=-x:n=x;
}
struct node
{
int u,v,w,nxt;
}edge[MAXN];
int head[MAXN];
int num=;
int add_edge(int x,int y,int z)
{
edge[num].u=x;
edge[num].v=y;
edge[num].w=z;
edge[num].nxt=head[x];
head[x]=num++;
}
int n,m;
int vis[MAXN];
int dis[MAXN];
struct pr
{
int p,v;
pr()
{p=v=;}
pr(int a,int b)
{p=a;v=b;}
bool operator<(const pr&a)const
{return v>a.v;}
}inc;
void prime()
{
//vis[1]=1;
priority_queue<pr>q;
memset(dis,maxn,sizeof(dis));
dis[]=;
q.push(pr(,));
int ans=;
// for(int i=head[1];i!=-1;i=edge[i].nxt)
// q.push(pr(edge[i].v,edge[i].w)); for(int k=;k<=n;k++)
{
int pos;
while(vis[q.top().p]&&q.size()>=)
q.pop(); pos=q.top().p;
vis[pos]=;
ans+=dis[pos];
for(int i=head[pos];i!=-;i=edge[i].nxt)
if(vis[edge[i].v]==&&dis[edge[i].v]>edge[i].w)
{
dis[edge[i].v]=edge[i].w;
q.push(pr(edge[i].v,edge[i].w));
} }
printf("%d",ans);
}
int main()
{
read(n);read(m);
memset(head,-,sizeof(head));
for(int i=;i<=m;i++)
{
int x,y,z;
read(x);read(y);read(z);
add_edge(x,y,z);
add_edge(y,x,z);
}
prime();
return ;
}

最新文章

  1. #20145205 《Java程序设计》第3周学习总结
  2. 移除wordpress留言中自动链接功能
  3. csharp: 用Enterprise Library对象实体绑定数据
  4. SharedPreferences详解
  5. Graylog2+mongdb+rsyslog中央日志服务器对syslog的web管理--转载
  6. 如何使用Xcode6 调试UI,Reveal
  7. css Spirtes 错位问题解决
  8. Lua编程入门-学习笔记2
  9. 实时监听input标签输入 实时监听文本框输入 避免中文输入法无法触发onkeyup事件的问题
  10. 2、Libgdx配置你的开发环境(Eclipse,Intellij IDEA,NetBeans)
  11. 安装sql server2017出现错误:Visual Studio 运行时&quot;Microsoft visual c++2017 X64 Minimum Runtime - 14.10.25008&quot;需要修复
  12. CentOS 7安装部署ELK 6.2.4-SUCCESS
  13. C 语言 符合运算符
  14. hadoop:如何运行自带wordcount
  15. [模板]KMP算法
  16. 原生JS实现简易转盘抽奖
  17. [C#]SmtpClient发送邮件
  18. hadoop故障及其应对
  19. 使用参数化查询防止SQL注入漏洞(转)
  20. C/C++-标准输入/输出重定向为文件输入/输出

热门文章

  1. DOM相关知识点
  2. const,var,let 区别
  3. Android截图&lt;包括Alertdiaog&gt;
  4. 反射另一个app中的View
  5. 一.Windows I/O模型之选择(select)模型
  6. struts.xml里面子元素的配置
  7. thrift-go(golang)Server端笔记
  8. mySql 使用 SQL 文件脚本 failed to open file 注意事项
  9. 使用jd-gui+javassist修改已编译好的class文件
  10. BZOJ 2150 部落战争 (二分图匹配)