51nod 1640 天气晴朗的魔法 (图论,并查集)

Autosar进阶专栏索引 阅读详情

 

51nod魔法学校近日开展了主题为“天气晴朗”的魔法交流活动。

 

N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的魔力连接起来,形成一个魔法阵。

 

魔法链是做法成功与否的关键。每一条魔法链都有一个魔力值V,魔法最终的效果取决于阵中所有魔法链的魔力值的和。

 

由于逆天改命的魔法过于暴力,所以我们要求阵中的魔法链的魔力值最大值尽可能的小,与此同时,魔力值之和要尽可能的大。

 

现在给定魔法师人数N,魔法链数目M。求此魔法阵的最大效果。

Input

两个正整数N,M。(1 <= N <= 10^5, N <= M <= 2 * 10^5)

接下来M行,每一行有三个整数A, B, V。(1 <= A, B <= N, INT_MIN <= V <= INT_MAX)

保证输入数据合法。

Output

输出一个正整数R,表示符合条件的魔法阵的魔力值之和。

Input示例

4 6
1 2 3
1 3 1
1 4 7
2 3 4
2 4 5
3 4 6

Output示例

12

  题面明确,构成一个连接连接所有点的树.其中最大的边尽可能小,在这个前提下,其他边尽量大.

 

 1: 最大的边尽可能小,那么可以用kurskal算法或者prim算法算法他的最小生成树,记录最大的那条边。

 2: 然后就知道,就算只选取小于这条边的边,也至少能构成1棵树(最小生成树),根据题目要求,优先选择大的边(但要小于1中记录的最大值)

 3: 很明显这里用kurskal更加的方便,因为优先选择大的边,在一开始构成最小生成树时已经排序好,记录最大边的位置,从尾到头重新遍历即可。

 4:注意如果有边和最大边一样长,也要记录,还有就是sort语句的自定义排序语句,情况为'=='时不能返回1,今天还特意问人查资料,具体原因自行百度补一波更清楚。

并查集不会的话,可以看我上一篇博客有我点一点理解。

我推荐一个视频:http://www.bilibili.com/video/av8373130/  

这是某大佬的教学,讲的很好,吃个饭一边看5分钟,吃完就会并查集了。

然后 献上代码:

 

#include <iostream>
#include <cstdio>
#include <string.h>
#include <fstream>
#include <algorithm>
using namespace std;
    long long int ans=0;
    int fu[100005],i,j,n,m,gen1,gen2,maxbian=0,maxbnum;
struct bi
{
    int from,to,leng;
}bian[200005];
int cmp1(bi a,bi b)  //小的边在前面
{
        return a.leng<b.leng;
}
int cmp2(bi a,bi b)   //大的在前面
{
    return b.leng>a.leng;
}
int FindGen(int x)  //路径压缩   查找
{
    int a,b;
    a=x;//保存初始值
    while(fu[x]!=x)//找到根节点,而不是父节点
        x=fu[x];    //得到根点x
                      //下面开始路径压缩
    while(fu[a]!=x)//不是根的直接子点
    {
         b=fu[a];//保存父点,方便更改
         fu[a]=x;
         a=b;
    }
    return x;
}

int main()
{
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++)   //父节点数组初始化
        fu[i]=i;
    for(i=0;i<m;i++)
        scanf("%d%d%d",&bian[i].from,&bian[i].to,&bian[i].leng);
    sort(bian,bian+m,cmp1);
    for(i=0;i<m;i++)
    {
        gen1=FindGen(bian[i].from);   //分别两个点的根点
         gen2=FindGen(bian[i].to);
         if(gen1!=gen2)    //根不同
         {
             fu[gen1]=gen2; //并合
             if(bian[i].leng>maxbian)
             {
                maxbian=bian[i].leng;
                maxbnum=i;
             }
         }
         if(bian[i].leng==maxbian&&maxbnum!=i)//可能最大边不止一条
            maxbnum=i;
    }
    for(i=1;i<=n;i++)   //父节点数组初始化
        fu[i]=i;
    for(i=maxbnum;i>=0;i--)
    {
        gen1=FindGen(bian[i].from);   //分别两个点的根点
         gen2=FindGen(bian[i].to);
         if(gen1!=gen2)    //根不同
         {
             ans+=bian[i].leng;
             fu[gen1]=gen2; //并合
         }
    }
   printf("%lld",ans);
   return 0;
}

 

 

 

 

 

 

医疗数据采集:Python爬虫爬取医学文献与药品信息(2026合规与伦理版) 医疗数据采集不同于爬取新闻或房价,它直接关系到人的生命健康和法律底线。技术层面:优先使用官方 API (PubMed E-utilities, BioThings),避免解析复杂HTML。法律层面:严守“不碰隐私、不破付费、不传谣言”三条红线。伦理层面:保持对生命的敬畏,确保数据的准确性和用途的正当性。在2026年,一个优秀的医疗数据工程师,不是那个能爬取最多数据的人,而是那个能在合规框架下,利用公开数据解决真实医疗问题的人。请务必珍视您的职业生涯和法律责任,切勿以身试法。 阅读详情

相关推荐

别再到处找了!GWAS数据下载保姆级指南:从IEU、FinnGen到UK Biobank一站搞定

本文提供GWAS数据下载的全面指南,涵盖IEU OpenGWAS、FinnGen、UK Biobank等五大核心数据库的获取策略。从数据库选型到实战操作,详细解析数据搜索、下载、预处理全流程,帮助科研人员高效获取GWAS数据,特别适合初学者快速上手。

weixin_42523543的博客 1583

天气晴朗的魔法

这样阴沉的天气持续下去,我们不免担心起他的健康。   51nod魔法学校近日开展了主题为“天气晴朗”的魔法交流活动。   N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的魔力连接起来,形成一个魔法阵。   魔法链是做法成功与否的关键。每一条魔法链都有一个魔力值V,魔法最终的效果取决于阵中所有魔法链的魔力值的和。   由于逆天改命的魔法过于暴力,所以我们要求阵中的魔法链...

qq_40941611的博客 307

Keil-C51 与 Keil -ARM 共存的方法

本篇为《嵌入式相关》系列博客的第五篇,该系列博客主要记录单片机开发及硬件设计的相关过程,方便以后查阅。 Keil-C51 与 Keil -ARM 共存的方法状况解决方案1测试解决方案2 状况 今天装完Keil-C51,然后又换装了Keil-ARM之后,可以正常编译STM32 的工程,但是无法编译C51的工程,并且出现了如下错误: *** Error: Project ‘template’ requires ‘C51’ Toolchain which is not installe 这种情况就是Keil-

梁小憨憨的博客 1万+

51nod 1640 天气晴朗的魔法(kruskal)

思路:题目比较难懂,其实就是先求一次最小生成树把最大的边权记录下来,然后对小于这个边权的边做一次最大生成树就可以了 #include using namespace std; const int maxn = 1e5+7; const int maxm = 2*1e5+7; #define LL long long int fa[maxn]; int Find(int x){return

围巾的ACM博客 1250

Xlinx PG151 除法器IP 笔记

对Xlinx 除法器IP PG151中部分内容记录备忘。

weixin_50515160的博客 2528

Matlab实战:用Transformer+LSTM+SVM搞定股票价格预测(附完整代码)

本文介绍了一种基于Transformer、LSTM和SVM的混合建模方法,用于股票价格预测。该方法结合了Transformer的全局依赖捕捉能力、LSTM的时序特征提取优势以及SVM的非线性回归能力,有效应对金融时间序列的非平稳性和噪声问题。文章提供了完整的Matlab实现代码,并展示了混合模型在实盘测试中的优异表现,方向预测准确率达62%,最大回撤控制在3.2%以内。

milk8的博客 254

51nod 1640天气晴朗的魔法(克鲁斯卡尔,并查集)

1640 天气晴朗的魔法 题目来源: 原创 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 这样阴沉的天气持续下去,我们不免担心起他的健康。 51nod魔法学校近日开展了主题为“天气晴朗”的魔法交流活动。 N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的魔力连接起来,形成一个魔法阵。 魔法链是做法成功与否的关

Tezuka 434

单细胞实战之亚细胞分群从T/NK至CD4+T细胞——从入门到进阶(中级篇1)

亚细胞分群从T/NK至CD4+T细胞

zfyyzhys的博客 6389

51nod 1640 天气晴朗的魔法 【二分枚举最大生成树】or【最小&&最大 生成树】

这样阴沉的天气持续下去,我们不免担心起他的健康。51nod魔法学校近日开展了主题为“天气晴朗”的魔法交流活动。N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的魔力连接起来,形成一个魔法阵。魔法链是做法成功与否的关键。每一条魔法链都有一个魔力值V,魔法最终的效果取决于阵中所有魔法链的魔力值的和。由于逆天改命的魔法过于暴力,所以我们要求阵中的魔法链的魔力值最大值尽可能的小,与此同时,魔力值

lzs_lazy 389

OpenWebUI联网搜索实战:如何用SearXNG让本地大模型获取实时信息(附百度/360配置)

本文详细介绍了如何通过部署开源元搜索引擎SearXNG,为本地运行的OpenWebUI大语言模型(如Qwen、Llama)配置联网搜索功能,解决其知识库过时的问题。文章重点讲解了SearXNG的Docker部署、集成国内搜索引擎(如百度、360)的配置方法,以及如何与OpenWebUI无缝对接,从而实现本地大模型获取实时、准确的中文信息,提升其实用性。

weixin_28835583的博客 1872

在Open3D中从网格中采样点云

在本文中,我们将学习如何使用Open3D从网格中采样点云。点云采样是点云处理的重要步骤之一,能够为后续的任务提供必要的输入。通过这些示例代码,我们可以很容易地使用Open3D库从网格模型中采样点云。值得注意的是,根据实际应用需求,我们可以调整采样点的数量和采样方法来满足不同的场景需求。除了使用Poisson Disk算法,Open3D还提供了其他的点云采样方法,如Uniform采样和Random采样。这个函数使用了Poisson Disk采样算法,可以在保持点云均匀性的同时,尽可能避免重叠点的生成。

FxRuby的博客 413

51Nod - 1640 天气晴朗的魔法

51nod魔法学校近日开展了主题为“天气晴朗”的魔法交流活动。 N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的魔力连接起来,形成一个魔法阵。 魔法链是做法成功与否的关键。每一条魔法链都有一个魔力值V,魔法最终的效果取决于阵中所有魔法链的魔力值的和。 由于逆天改命的魔法过于暴力,所以我们要求阵中的魔法链的魔力值最大值尽可能的小,与此同时,魔力值之和要尽可

海绵的博客 351

YOLOv11改进,YOLOv11添加DCNv4可变性卷积(windows系统成功编译),二次创新C3k2结构,全网最详细教程

引入了可变形卷积 v4 (DCNv4),这是一种为广泛视觉应用设计的高效且有效的操作算子。DCNv4通过两项关键增强解决了其前身DCNv3的局限性:1. 移除空间聚合中的softmax归一化,以增强其动态特性和表达能力;2. 优化内存访问以最小化冗余操作,从而加速计算。这些改进使得DCNv4相比DCNv3显著加快了收敛速度,并且处理速度大幅提升,前向传播速度超过三倍。DCNv4在多个任务中表现出色,包括图像分类、实例和语义分割,特别是在图像生成方面表现突出。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 2665

51Nod-1640 天气晴朗的魔法

1640 天气晴朗的魔法 题目来源: 原创基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注这样阴沉的天气持续下去,我们不免担心起他的健康。51nod魔法学校近日开展了主题为“天气晴朗”的魔法交流活动。N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的魔力连接起来,形成一个魔法阵。魔法链是做法成功与否的关键。每一条魔法链都有一个魔力值V,魔法...

Revenant_Di的博客 294

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

51Nod1640 天气晴朗的魔法(最小生成树变形)

这样阴沉的天气持续下去,我们不免担心起他的健康。 51nod魔法学校近日开展了主题为“天气晴朗”的魔法交流活动。 N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的魔力连接起来,形成一个魔法阵。 魔法链是做法成功与否的关键。每一条魔法链都有一个魔力值V,魔法最终的效果取决于阵中所有魔法链的魔力值的和。 由于逆天改命的魔法过于暴力,所以我们要求阵中的魔法链的魔力值最大值尽可能的小,与此...

一身清贫怎敢入繁华 442

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

51nod 1640 天气晴朗的魔法 By Assassin

1640 天气晴朗的魔法 题目来源: 原创 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 这样阴沉的天气持续下去,我们不免担心起他的健康。51nod魔法学校近日开展了主题为“天气晴朗”的魔法交流活动。N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的魔力连接起来,形成一个魔法阵。魔法链是做法成功与否的关键。每一条魔法链都有

Assassin 349

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

51NOD--1640 天气晴朗的魔法--二分+最小生成树

1640 天气晴朗的魔法 1.0 秒 131,072.0 KB 20 分 3级题 这样阴沉的天气持续下去,我们不免担心起他的健康。 51nod魔法学校近日开展了主题为“天气晴朗”的魔法交流活动。 N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的魔力连接起来,形成一个魔法阵。 魔法链是做法成功与否的关键。每一条魔法链都有一个魔力值V,魔法最终的效果取决于阵中...

lanshan1111的博客 166

51nod 1640 天气晴朗的魔法 (最小生成树)

1640 天气晴朗的魔法 题目来源: 原创 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 取消关注 这样阴沉的天气持续下去,我们不免担心起他的健康。 51nod魔法学校近日开展了主题为“天气晴朗”的魔法交流活动。 N名魔法师按阵法站好,之后选取N - 1条...

didai0291的博客 139

51nod 1640 天气晴朗的魔法【最小生成树概念】

好久没刷提了, 晚上没事写两道学弟的训练题练下手。 题目链接 点击打开链接 51nod魔法学校近日开展了主题为“天气晴朗”的魔法交流活动。 N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的魔力连接起来,形成一个魔法阵。 魔法链是做法成功与否的关键。每一条魔法链都有一个魔力值V,魔法最终的效果取决于阵中所有魔法链的魔力值的和。

zoro_n的博客 328

51nod 1640 天气晴朗的魔法

51nod魔法学校近日开展了主题为“天气晴朗”的魔法交流活动。 N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的魔力连接起来,形成一个魔法阵。 魔法链是做法成功与否的关键。每一条魔法链都有一个魔力值V,魔法最终的效果取决于阵中所有魔法链的魔力值的和。 由于逆天改命的魔法过于暴力,所以我们要求阵中的魔法链的魔力值最大值尽可能的小,与此同时,魔力值之和要尽可

dml_96的博客 1142

51nod 1640 天气晴朗的魔法(并查集)

1640 天气晴朗的魔法 题目来源: 原创 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 这样阴沉的天气持续下去,我们不免担心起他的健康。 51nod魔法学校近日开展了主题为“天气晴朗”的魔法交流活动。 N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的魔力连接起来,形成一个魔

哇咔咔 548

51nod1640天气晴朗的魔法

http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1640&amp;judgeId=595330 1640 天气晴朗的魔法  题目来源: 原创 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 这样阴沉的天气持续下去,我们不免担心起他的健康。   51nod魔...

abns的博客 221

51nod 1640 天气晴朗的魔法 最小生成树

1640 天气晴朗的魔法 题目连接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1640 Description 51nod魔法学校近日开展了主题为“天气晴朗”的魔法交流活动。 N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的魔力连接起来,形成一个魔法阵。 魔法链是做法成功与否的关键。每一条魔法链都有一...

weixin_30547797的博客 70

51nod——1640 天气晴朗的魔法 有边权限制的最大生成树

  好好读题嗷:“所以我们要求阵中的魔法链的魔力值最大值尽可能的小,与此同时,魔力值之和要尽可能的大。”   第一条件是生成树的最大边权更小,第二条件是在最大边权的限制下搞一个最大生成树。   至于最大生成树,如果用prime就把边权全都置负,如果用kruskal就把边权降序排列,生成的时候加一个小判断。    1 #include <bits/stdc++.h> 2...

weixin_33919950的博客 131

51Nod 1640 - 天气晴朗的魔法(最小生成树变形)

题目链接 http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1640 【题目描述】 这样阴沉的天气持续下去,我们不免担心起他的健康。 51nod魔法学校近日开展了主题为“天气晴朗”的魔法交流活动。 N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的魔力连接起来,形成一个魔法阵。 魔法链是做法成功与否的关...

Change the world by program. 188

51nod 1640 天气晴朗的魔法

1640 天气晴朗的魔法 题目来源: 原创 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 这样阴沉的天气持续下去,我们不免担心起他的健康。 51nod魔法学校近日开展了主题为“天气晴朗”的魔法交流活动。 N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的魔力连接起来,形成一个魔

shyoldman的博客 274
上一篇: 51nod 1212 无向图最小生成树(prim算法和kruska算法) 新手小结
下一篇: 51nod 1019 逆序数 (分治)
Zero丶圈圈
博客等级 码龄9年 6粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值