#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. Ruby自学笔记(五)— 条件判断

    条件判断,在编程语言中都存在,而Ruby中的条件判断和Java中类似,当然还是存在些许差别 Ruby中条件判断的条件: 1) 可以使用 ==,<,>等比较运算来作为条件,比较运算可以返回t ...

  2. 怎样找到native speaker的感觉

  3. 初始化rails上的compass项目

    compass以外还有一个很实用的scss模块, _media-queries.scss 通过终端下载 curl -O https://raw.github.com/paranoida/sass-me ...

  4. Oracle三组难缠的hint no_unnest/unnest,push_subq,push_pred--平展化(转)

    经常有人把这三个hint搞混,主如果因为对三种重写道理不清楚.特总结如下.(实验景象为10204)1. no_unnest, unnestunnest我们称为对子查询展开,顾名思义,就是别让子查询孤单 ...

  5. 【HDOJ】2645 find the nearest station

    裸BFS. /* 2645 */ #include <iostream> #include <queue> #include <cstdio> #include & ...

  6. WordPress /wp-admin/users.php畸形s参数路径泄漏漏洞

    漏洞版本: WordPress 2.7.x WordPress 2.8.x WordPress 2.9.x WordPress 3.0.x WordPress 3.1.x WordPress 3.2. ...

  7. 后缀自动机(SAM) :SPOJ LCS - Longest Common Substring

    LCS - Longest Common Substring no tags  A string is finite sequence of characters over a non-empty f ...

  8. 在Linux下查看环境变量

    原文地址:http://blog.chinaunix.net/uid-25124785-id-77098.html 有时候在编写makefile的时候,自己都不清楚有些变量是什么,也不清楚如何查看,于 ...

  9. poj2774 Long Long Message(后缀数组)

    [题目链接] http://poj.org/problem?id=2774 [题意] A & B的最长公共子序列. [思路] 拼接+height数组.将AB拼接成一个形如A$B的串,枚举hei ...

  10. max Sum(简单动态规划)

    http://acm.hdu.edu.cn/showproblem.php?pid=1003 / 给组测试数据 1 7 2 3 -4 -5 6 7 8 一个关键问题 : 什么时候将开始位置重新赋值 即 ...