hiho刷题日记——第二十七天最小生成树二·Kruscal算法

osgEarth添加线特征 部分关键代码: osgEarth::Annotation::FeatureNode* pathNode = 0; osgEarth::Symbology::Geometry* path = new osgEarth::Symbology::LineString(); Track*track = dynamic_cast<Track*>(entity->getProperty(PS_TRACK)); if (track == nullptr) { return; } st. 阅读详情

题目

用Kruscal算法做最小生成树

思路

将所有的边从小到大排序
从最小的边开始加起,若两端点不在同一个集合(用并查集的方法判断),便可以加。
一直加到所有的点都连接起来为止。得出答案。

代码

#include<cstdio>
#include<cstring>
using namespace std;

const int MAXN=100000+1;
const int MAXM=1000000+1;
int N,M,vis[MAXM],u[MAXM],v[MAXM],w[MAXM],fa[MAXN];

void qksort(int x,int y)
{
    if(x>=y) return;
    int i=x,j=y,key=w[(x+y)/2];
    while(i<=j)
    {
         while(w[i]<key) i++;
         while(w[j]>key) j--;
         if(i<=j)
         {
            int t;
            t=u[i]; u[i]=u[j]; u[j]=t;
            t=v[i]; v[i]=v[j]; v[j]=t;
            t=w[i]; w[i]=w[j]; w[j]=t;
            i++;
            j--;
         }
    }
    qksort(x,j);
    qksort(i,y);
}

int find(int x)
{
   return fa[x]<0 ? x : fa[x]=find(fa[x]);
}

int kruskal()
{
   int ans=0;
   memset(fa,-1,sizeof(fa));
   memset(vis,0,sizeof(vis));
   qksort(1,M);
   for(int i=1;i<=M;i++)
   {
      int rx=find(u[i]);
      int ry=find(v[i]);
      if(rx!=ry)
      {
          fa[rx]=ry;
          ans=ans+w[i];
          vis[i]++;
      }
   }
   return ans;
}

int main()
{
    scanf("%d%d",&N,&M);
    for(int i=1;i<=M;i++) scanf("%d%d%d",&u[i],&v[i],&w[i]);
    printf("%d",kruskal());

    return 0;
}
【数字图像处理第四版课后习题答案】第2章 数字图像基础(含英文原版) 如图 P2.3 所示,视网膜图像中与点相对应的直径 x 是由类似的三角形得到的。即得出 x = 0.085d。根据第 2.1 节中的讨论,并结合一些自由解释,我们可以将眼窝视为一个方形传感器阵列,拥有大约 337,000 个元素,这相当于一个大约 580×580 个元素的阵列。假设元素间距相等,则在 1.5 毫米长的直线上有 580 个元素和 579 个空间,共计 1,159 个。换句话说,如果一个点的直径 d<1.3×10-6 m,或者 d<15.3×10 m,眼睛就无法检测到这个点。 阅读详情

相关推荐

Ansys口腔正畸有限元分析:从几何处理到接触设定的全流程解析

本文详细解析了Ansys在口腔正畸有限元分析中的全流程应用,从几何处理到接触设定,帮助医生精准预测牙齿移动趋势。通过有限元建模技术,可同时观察牙齿-牙周膜-牙槽骨的力学响应,显著提升矫治效果预测准确率。文章还分享了实用技巧和参数设置建议,适用于正畸医生和工程师。

weixin_30897233的博客 348

#1098 : 最小生成树二·Kruscal算法

#1098 : 最小生成树二·Kruscal算法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 随着小Hi拥有城市数目的增加,在之间所使用的Prim算法已经无法继续使用了——但是幸运的是,经过计算机的分析,小Hi已经筛选出了一些比较适合建造道路的路线,这个数量并没有特别的大。 所以问题变成了——小Hi现在手上拥有N

LzyRapX 910

别再手动翻译PDF了!手把手教你用Zotero PDF Translate插件搞定外文文献(附最新GitHub下载链接)

本文详细介绍如何利用Zotero PDF Translate插件高效翻译外文文献,包括插件安装、配置及多引擎对比。通过划词翻译、段落翻译和全文翻译功能,显著提升科研工作效率,特别适合处理大量英文PDF文献的研究人员。

weixin_33712987的博客 772

最小生成树二Kruscal算法

题目1 : 最小生成树二·Kruscal算法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 随着小Hi拥有城市数目的增加,在之间所使用的Prim算法已经无法继续使用了——但是幸运的是,经过计算机的分析,小Hi已经筛选出了一些比较适合建造道路的路线,这个数量并没有特别的大。 所以问题变成了——小Hi现在手上拥有N座城市,且已知其...

weixin_33775582的博客 236

想发故障诊断论文?手把手教你用CWRU数据集复现第一个Baseline模型

本文提供了一份基于CWRU轴承数据集的故障诊断Baseline模型实战指南,手把手教你从数据准备到模型构建的全流程。通过详细的Python代码示例和学术级实验设计,帮助初学者快速复现第一个故障诊断模型,为发表高质量论文奠定基础。

weixin_28681255的博客 428

macOS安装Cplex+yalmip

macOS安装Cplex+yalmip

DS 4248

HihoCoder - 1097 最小生成树·Prim算法 模板

Training 6 - G题 输入 每个测试点(输入文件)有且仅有一组测试数据。 在一组测试数据中: 第1行为1个整数N,表示小Hi拥有的城市数量。 接下来的N行,为一个N*N的矩阵A,描述任意两座城市之间建造道路所需要的费用,其中第i行第j个数为Aij,表示第i座城市和第j座城市之间建造道路所需要的费用。 对于100%的数据,满足N<=10^3,对于任意i,满足Aii=0,对于任意i, ...

xukeke12138的博客 174

scRNA-seq | 吐血整理的单细胞入门教程(从原理到代码实操)(二)

scRNA-seq | 吐血整理的单细胞入门教程(从原理到代码实操)(二)

m0_72224305的博客 4305

[HihoCoder]#1098 : 最小生成树二·Kruscal算法

华电北风吹 天津大学认知计算与应用重点实验室 2016-06-24题目链接: http://hihocoder.com/problemset/problem/1098题目分析: Kruscal算法。// problem1098.cpp : 定义控制台应用程序的入口点。 // 最小生成树二·Kruscal算法 // http://hihocoder.com/problemset/pro

掉下个小石头 790

基于Python的京东商品价格监控与降价提醒系统设计与实现

本文详细介绍了如何使用Python构建一个完整的京东商品价格监控与降价提醒系统。系统通过爬虫技术实时抓取京东商品价格信息,结合数据存储与分析,实现价格波动监控和智能降价提醒功能。文章涵盖了系统设计、技术选型、代码实现以及部署方案,为电子商务价格监控领域提供了一个实用的解决方案。关键词:Python爬虫、京东API、价格监控、降价提醒、自动化。

2201_76125261的博客 404

Yield Management软件:Lam Research二次开发_(5).缺陷分析与分类方法

在半导体制造过程中,缺陷分析和分类是提高良率管理(Yield Management)的关键步骤。通过准确地识别和分类缺陷,可以更好地理解工艺过程中的问题,从而采取有效的措施来提高生产效率和产品质量。本节将详细介绍缺陷分析和分类的方法,包括缺陷检测、特征提取、分类算法及其在Lam Research软件中的应用。

2401_87715305的博客 690

hihoCoder 1098 最小生成树二·Kruscal算法

题目链接:http://hihocoder.com/problemset/problem/1098基本全裸最小生成树。 下面是AC代码:#include<cstdio> #include<cstring> #include<algorithm> using namespace std;struct edge { int x,y,cost; } ed[1000005];int pre[100

linlinsong—ACM界蒟水! 539

手把手教你学Simulink——AC-DC整流器场景:基于传统晶闸管控制整流拓扑的建模:带反电动势负载的单相可控整流器输出特性仿真

在工业电力电子应用中,单相可控整流器常用于将交流电源转换为可调直流电压。当该整流器连接到具有**反电动势(Back EMF)**的负载时(如直流电机、电池充电系统等),其输出特性和工作原理与纯电阻性负载有所不同。本文将带你使用搭建一个带反电动势负载的单相全控桥式整流器模型,并通过仿真分析其输出电压、电流波形以及触发角对输出特性的影响。本文详细介绍了如何使用Simulink搭建一个带反电动势负载的单相全控桥式晶闸管整流器模型,并进行了输出特性的仿真分析。

MHD0815的博客 233

数据结构不难之图论

第二篇 数据结构不难之树结构 题目1 : 最小生成树一·Prim算法 描述 最近,小Hi很喜欢玩的一款游戏模拟城市开放出了新Mod,在这个Mod中,玩家可以拥有不止一个城市了! 但是,问题也接踵而来——小Hi现在手上拥有N座城市,且已知这N座城市中任意两座城市之间建造道路所需要的费用,小Hi希望知道,最少花费多少就可以使得任意两座城市都可以通过所建造的道路互相到达(假设有A、B、C三座城市,只需要...

xd-cy的博客 546

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

刷题笔记56—最短路径(Dijkstra)、最小生成树(Prim、Kruskal)

题目链接 题目描述 万圣节的早上,小Hi和小Ho在经历了一个小时的争论后,终于决定了如何度过这样有意义的一天——他们决定去闯鬼屋! 在鬼屋门口排上了若干小时的队伍之后,刚刚进入鬼屋的小Hi和小Ho都颇饥饿,于是他们决定利用进门前领到的地图,找到一条通往终点的最短路径。 鬼屋中一共有N个地点,分别编号为1…N,这N个地点之间互相有一些道路连通,两个地点之间可能有多条道路连通,但是并不存在一条两端都是...

优快云_dzh的博客 1133

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

贪心算法——最小生成树

设G=(V,E)是无向连通带权图,即一个网络。E中的每一条边(v,w)的权为c[v][w]。如果G的子图G’是一棵包含G的所有顶点的树,则称G’为G的生成树。生成树上各边权的总和称为生成树的耗费。在G的所有生成树中,耗费最小的生成树称为G的最小生成树。构造最小生成树的两种方法:Prim算法和Kruskal算法。 一、最小生成树的性质 设G=(V,E)是连通带权图,U是V的真子集。如果(...

weixin_34192732的博客 689

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

算法导论--最小生成树(Kruskal和Prim算法)

转载请注明出处:勿在浮沙筑高台http://blog.youkuaiyun.com/luoshixian099/article/details/51908175关于图的几个概念定义: 连通图:在无向图中,若任意两个顶点viv_i与vjv_j都有路径相通,则称该无向图为连通图。 强连通图:在有向图中,若任意两个顶点viv_i与vjv_j都有路径相通,则称该有向图为强连通图。 连通网:在连通图中,若图的边具有一定的

勿在浮砂筑高台 14万+

【最小生成树专题】hihocoder 1098 最小生成树二·Kruscal算法

http://hihocoder.com/problemset/problem/1098 #1098 : 最小生成树二·Kruscal算法 描述 随着小Hi拥有城市数目的增加,在之间所使用的Prim算法已经无法继续使用了——但是幸运的是,经过计算机的分析,小Hi已经筛选出了一些比较适合建造道路的路线,这个数量并没有特别的大。 所以问题变成了——小Hi现在手上拥有N座城市,且已知其中一些城市...

荷叶田田 399

hiho一下 第二十六周---最小生成树一·Prim算法

最小生成树一·Prim算法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 最近,小Hi很喜欢玩的一款游戏模拟城市开放出了新Mod,在这个Mod中,玩家可以拥有不止一个城市了! 但是,问题也接踵而来——小Hi现在手上拥有N座城市,且已知这N座城市中任意两座城市之间建造道路所需要的费用,小Hi希望知道,最少花费多少

sxk 1602

Kruscal算法

参考:http://blog.youkuaiyun.com/luomingjun12315/article/details/47700237 Kruskal算法       Kruskal算法是基于贪心的思想得到的。首先我们把所有的边按照权值先从小到大排列,接着按照顺序选取每条边,如果这条边的两个端点不属于同一集合,那么就将它们合并,直到所有的点都属于同一个集合为止。至于怎么合并到一个集合,那

Dave_lzw的博客 1610

hiho刷题日记——第三十一天小Hi小Ho的惊天大作战:扫雷·二

题目这次的扫雷是二维的了。根据三种规则做一次判断,判断出一定是雷和一定不是雷的数量。 1.如果某一个被探明的格子里所标的数字为0,那么它相邻的8个格子里的未探明格子被认作是一定不是地雷的格子。 2.如果某一个被探明的格子里所标的数字为K,且它相邻的8个格子里正好有K个没有探明的格子的话,则这K个没有探明的格子被认作是一定是地雷的格子。 3.如果某两个探明了的格子A和B,他们中标明的数字分别为P

AngcFun的博客 1530

hiho刷题日记——第三十天小Hi小Ho的惊天大作战:扫雷·一

题目简化版扫雷,只有一行。 给出一行的周围3格中是雷的数量。 判断哪些一定是雷,一定不是雷。 思路因为给出的信息是环环相扣的,不用一个一个去试。 只需要试第一格是否为雷就可以通过数据算出后面是否为雷。 所以只用试两次, 第一次把一格设为雷,算出后面的情况;第二次把第一格设为不是雷,算出后面的情况。 若两次都算出来了,则将两次的情况对比,没有变化的部分就是答案。 若只有一次满足条件,则

AngcFun的博客 1234

hiho刷题日记——第十二天刷油漆

题目一共N个结点的树(1至N编号),油漆能够涂M个结点。 将包含1号结点的一部分连通的结点进行涂漆(这里的连通指的是这一些涂漆的结点可以互相到达并且不会经过没有涂漆的结点),然后将剩下的结点拆掉!那么究竟选择哪些结点进行涂漆呢?小Ho想了想给每个结点都评上了分——他希望最后留下来,也就是涂漆了的那些结点的评分之和可以尽可能的高!输入每个测试点(输入文件)有且仅有一组测试数据。 每组测试数据的第一

AngcFun的博客 1014

hiho刷题日记——第九天状态压缩·二

hiho刷题日记——第九天天状态压缩·二题目小Hi和小Ho领到了一个大小为N*M的长方形盘子,他们可以用这个盒子来装一些大小为2*1的蛋糕。但是根据要求,他们一定要将这个盘子装的满满的,一点缝隙也不能留下来,才能够将这些蛋糕带走。这么简单的问题自然难不倒小Hi和小Ho,于是他们很快的就拿着蛋糕离开了~但小Ho却不只满足于此,于是他提出了一个问题——他们有多少种方案来装满这个N*M的盘子呢?代码#in

AngcFun的博客 971

hiho刷题日记——第十六天RMQ-ST算法

这两天有事停了两天。这道题也是调了不少时间。好累呀。真想就直接贴代码。ST定义ST[Len][L]表示左边界为L,长度为2^Len的区间中的最小值。则有 ST[Len][L]=min(ST[Len-1][L],ST[Len-1][L+2^(Len-1)]; 然后就可以循环求出所有的ST。答案取小于这个区间长度的最大的2的非负整数次幂T,则答案为min(ST[Len][L],ST[Len][R+1

AngcFun的博客 888

hiho刷题日记——第十一天树中的最长路

题目给出一个无根树(其实就可以之间看作一个特殊的无向图) 求出该无根树的最长路 样例输入 8 1 2 1 3 1 4 4 5 3 6 6 7 7 8 样例输出 6思路对于任意一个节点,将其视为根节点,找到深度最深的节点记录下来。 再将找到的节点作为根节点找出深度最深的节点,两点之间的路便是这无根树的最长路。原因假设我们已知了最长路的两个端点。那么将这颗无根树上的任意一个节点

AngcFun的博客 868
上一篇: hiho刷题日记——第二十六天最小生成树一·Prim算法
下一篇: hiho刷题日记——第二十八天题外话·堆
昂村饭
博客等级 码龄12年 5粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值