#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#define pa pair<int,int>
using namespace std;
int n,num,dis[],ans,f[],head[];
struct node
{
int u,v,pre,dis;
}e[*];
void Add(int from,int to,int dis)
{
num++;
e[num].dis=dis;
e[num].u=from;
e[num].v=to;
e[num].pre=head[from];
head[from]=num;
}
void Prim()
{
priority_queue<pa,vector<pa>,greater<pa> >q;
dis[]=;
q.push(make_pair(,));
while(!q.empty())
{
int k=q.top().second;
q.pop();
if(f[k])continue;
f[k]=;
ans+=dis[k];
for(int i=head[k];i;i=e[i].pre)
if(dis[e[i].v]>e[i].dis)
{
dis[e[i].v]=e[i].dis;
q.push(make_pair(e[i].dis,e[i].v));
}
}
}
int main()
{
scanf("%d",&n);
num=;
int x;
memset(dis,/,sizeof(dis));
memset(f,,sizeof(f));
memset(head,,sizeof(head));
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
{
scanf("%d",&x);
if(i!=j)Add(i,j,x);
}
ans=;
Prim();
printf("%d\n",ans);
return ;
}
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
#define maxn 100010
using namespace std;
int n,m,fa[maxn],deep[maxn];
ll ans;
struct node
{
int u,v,dis;
}e[maxn];
int init()
{
int x=;char s;bool f=;s=getchar();
while(s<''||s>''){if(s=='-')f=;s=getchar();}
while(s>=''&&s<=''){x=x*+s-'';s=getchar();}
if(f)return -x;return x;
}
int cmp(const node &x,const node &y)
{
return x.dis<y.dis;
}
int find(int x)
{
if(x!=fa[x])fa[x]=find(fa[x]);
return fa[x];
}
void unionn(int x,int y)
{
if(deep[x]<=deep[y])
{
fa[x]=y;
if(deep[x]==deep[y])
deep[x]++;
}
else fa[y]=x;
}
int main()
{
n=init();m=init();
int x,y,z;
for(int i=;i<=n;i++)fa[i]=i;
for(int i=;i<=m;i++)
{
x=init();y=init();z=init();
e[i].u=x;e[i].v=y;e[i].dis=z;
}
sort(e+,e++m,cmp);
for(int i=;i<=m;i++)
{
int r1=find(e[i].u);
int r2=find(e[i].v);
if(r1==r2)continue;
ans+=e[i].dis;
unionn(r1,r2);
}
printf("%lld\n",ans);
return ;
}


prim 堆优化+ kruskal 按秩优化的更多相关文章

  1. 最小生成树(Minimum Spanning Tree)——Prim算法与Kruskal算法+并查集

    最小生成树——Minimum Spanning Tree,是图论中比较重要的模型,通常用于解决实际生活中的路径代价最小一类的问题.我们首先用通俗的语言解释它的定义: 对于有n个节点的有权无向连通图,寻 ...

  2. 最小生成树 Prim算法 和 Kruskal算法,c++描述

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  3. 最小生成树--Prim算法,基于优先队列的Prim算法,Kruskal算法,Boruvka算法,“等价类”UnionFind

    最小支撑树树--Prim算法,基于优先队列的Prim算法,Kruskal算法,Boruvka算法,“等价类”UnionFind 最小支撑树树 前几节中介绍的算法都是针对无权图的,本节将介绍带权图的最小 ...

  4. [Unity优化] Unity CPU性能优化

    前段时间本人转战unity手游,由于作者(Chwen)之前参与端游开发,有些端游的经验可以直接移植到手游,比如项目框架架构.代码设计.部分性能分析,而对于移动终端而言,CPU.内存.显卡甚至电池等硬件 ...

  5. 一步步优化JVM五:优化延迟或者响应时间

    本节的目标是做一些优化以满足对应用对延迟的需求.这次需要几个步骤,包括完善Java堆大小的配置,评估垃圾回收占用的时间和频率,也许还要尝试切换到不同的垃圾回收器,以及由于使用了不同的垃圾回收器,需要重 ...

  6. MySQL优化二(连接优化和缓存优化)

    body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-top: 10 ...

  7. [MySQL性能优化系列]LIMIT语句优化

    1. 背景 假设有如下SQL语句: SELECT * FROM table1 LIMIT offset, rows 这是一条典型的LIMIT语句,常见的使用场景是,某些查询返回的内容特别多,而客户端处 ...

  8. [经验] Win7减肥攻略(删文件不删功能、简化优化系统不简优化性能)

    [经验] Win7减肥攻略(删文件不删功能.简化优化系统不简优化性能) ☆心梦无痕☆ 发表于 2014-1-24 11:15:04 https://www.itsk.com/thread-316471 ...

  9. paper 110:凸优化和非凸优化

    数学中最优化问题的一般表述是求取,使,其中是n维向量,是的可行域,是上的实值函数.凸优化问题是指是闭合的凸集且是上的凸函数的最优化问题,这两个条件任一不满足则该问题即为非凸的最优化问题. 其中,是 凸 ...

随机推荐

  1. 七天学会 SALT STACK 自动化运维 (1)

    七天学会 SALT STACK 自动化运维 (1) 简单理解 SALTSTACK 安装与配置 基本的使用方法 结束语 引用资源 简单理解 SALT STACK 笔者是初次接触 自动化运维 这一技术领域 ...

  2. Insert Interval 面试题leetcode.

    刚开始做这个题的时候绕了好大的圈,对问题的分析不全面,没能考虑所有情况,做的很纠结.后来看了下大神的做法很受启发,改了改代码,最终提交了. public static ArrayList<Int ...

  3. WWDC2014之iOS使用动态库

    苹果的开放态度 WWDC2014上发布的Xcode6 beta版有了不少更新,其中令我惊讶的一个是苹果在iOS上开放了动态库,在Xcode6 Beta版的更新文档中是这样描述的: Frameworks ...

  4. 关于sql server 代理(已禁用代理xp)

    由于有数据库在恢复,导致计划不能执行,先操作如下: 关闭数据库的服务..然后把数据库文件剪切出来.然后在起服务.进入SqlSever删除数据库.因为文件已经剪切走了.所以不会删除文件.再把数据库拷到M ...

  5. Python字符编码讲解

    声明:本文参考 Python字符编码详解 在计算机中我们不管用什么语言和程序,最终数据在计算机中的都是字节码(也就是01形式)的形式存在的,如果 计算机直接把字节码显示在屏幕上,很明显一般人看不懂字节 ...

  6. STM32启动文件的选择

    移植了同事一个程序,然后死活不能用,发现启动文件错了,明天继续调.真把人折腾死了. stm32给的库文件太琐碎了,正如它的芯片型号一样繁多,例如启动文件: 网上查到的各个文件的解释是: startup ...

  7. temp 临时文件

    放假了,放假了:http://blog.csdn.net/skywalker_only/article/details/17076851 nucht2.2.1爆出如下异常: Exception in ...

  8. java 对象序列化 RMI

    对于一个存在于Java虚拟机中的对象来说,其内部的状态只保持在内存中.JVM停止之后,这些状态就丢失了.在很多情况下,对象的内部状态是需要被持久化下来的.提到持久化,最直接的做法是保存到文件系统或是数 ...

  9. C语言基础课程 第三课 ADB(Android Debug Bridge)的使用

     由于前面已经发布过Linux的博客了 基础班将Linux基础命令就不单独发表博客了,本节课主要就是利用adb连接手机进行一个Linux基本命令的复习.而且熟悉手机的底层运作,不用界面操作照样也能 ...

  10. w​i​n​d​o​w​s​7​旗​舰​版​I​I​S​6​配​置​-​保​证​能​发​布

    http://wenku.baidu.com/view/20b4d26248d7c1c708a145d1.html