#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. 那些年被我坑过的Python——摩拳擦掌(第三章)

    集合类型: 集合类型中的元素是唯一的! 集合的定义与赋值: set_1 = set([1, 3, 5, 7, 2]) set_2 = set([2, 4, 6, 8, 3]) 集合的运算操作 # 交集 ...

  2. launchpad bzr

    在lp注册 一个   lp ID,  比如 alangwansui 然后添加 SSH keys.为自己的管理添加权限. 注册一个项目的 比如  melody. 然后就可以开始使用bzr 在这个项目下建 ...

  3. STM32学习笔记——DMA控制器(向原子哥学习)

    一.DMA简介 DMA,全称为:Direct Memory Access,即直接存储器访问,DMA 用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输.当 CPU 初始化这个传输动作,传输 ...

  4. 怎么屏蔽F5键刷新功能

    window.document.onkeydown=function(){if(event.keyCode==116){//屏蔽F5键,改为只刷新本页面,防止一刷就刷整个窗口event.keyCode ...

  5. C++例题1:输出可打印字符

    #include<iostream>#include<stdlib.h>#include<cctype>int main(){ int i;char a=0; fo ...

  6. 转:misc_register、 register_chrdev 的区别总结

    杂项设备(misc device) 杂项设备也是在嵌入式系统中用得比较多的一种设备驱动.在 Linux 内核的include/linux目录下有Miscdevice.h文件,要把自己定义的misc d ...

  7. 一句话改变TWinControl控件的left坐标的前世今生(入口函数是SetBounds,然后调用SetWindowPos起作用,并发消息更新Delphi的left属性值)

    Delphi的重要属性,主要是Enable,  Visible, Color, left等等.这里分析left,因为TWinControl里有些覆盖函数的原因,虽然起点都是TControl.SetLe ...

  8. 【HDOJ】2267 How Many People Can Survive

    BFS. #include <iostream> #include <cstdio> #include <cstring> #include <queue&g ...

  9. bzoj2427

    一开始读错题导致各种不会做,无奈其实是一道水题,缩点反向建图树形dp即可 type link=^point; point=record po:longint; next:link; end; ..] ...

  10. BZOJ1631: [Usaco2007 Feb]Cow Party

    1631: [Usaco2007 Feb]Cow Party Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 459  Solved: 338[Submit ...