uva1395-Slim Span(最小生成树应用)

[RK3588-Android12] 深入解析USB Type-C PD充电功能的DTS配置与内核驱动修改 本文深入探讨了在RK3588 Android12平台上禁用USB Type-C PD充电功能的实现方法。通过分析设备树(DTS)配置与内核驱动(TCPM框架)的联动修改,详细解读了如何通过添加`pd-disable`属性及修改`tcpm.c`驱动代码,使Type-C端口绕过PD协议协商,仅工作在传统电源模式,以满足工控等特定场景对供电稳定性和成本控制的需求。 阅读详情

title: uva1395-Slim Span(最小生成树应用)
date: 2019-06-04 15:21:55
categories: ACM
tags: [ACM,算法]

题目描述

给你一个无向图,问这个图的生成树当中,T值最小是多少?
T:生成树当中,权值最大的边-权值最小的边
我的个人博客:https://www.kimiye.xyz

解题思路

显然这题要跟最小生成树有关系
考虑最小生成树的Kruskal算法:
找到权值最小的不形成回路的n-1条边,权值累加即可
显然T值是第n-1条边-第1条边

然后对于这题不难想到这么一个结论
选定一条权值最小的边作为最小生成树的一部分,其T值最小的生成树就是以该边为起点(最小值)的最小生成树

那么只要枚举起点,从中找到T值最小的生成树即可
起点范围是1~m-n+2(需保证至少有m-1条边)

代码:

#include <bits/stdc++.h>
typedef long long LL;
typedef unsigned long long ULL;
using namespace std;
const int maxn = 100+7;
const int inf = 0x3f3f3f3f;
struct edge
{
    int u,v,w;
    bool operator < (const edge &a) const
    {
        return w<a.w;
    }
}e[10007];
int n,m,fa[10007];
int getfa(int x)
{
    if(x==fa[x]) return x;
    return fa[x]=getfa(fa[x]);
}
int main()
{
    while(scanf("%d %d",&n,&m)!=EOF && n+m)
    {
        for(int i=1;i<=m;i++)
            scanf("%d %d %d",&e[i].u,&e[i].v,&e[i].w);
        sort(e+1,e+1+m);
        int ans=inf;
        for(int i=1;i<=m-n+2;i++)
        {
            for(int j=1;j<=n;j++) fa[j]=j;
            int cnt=0;
            for(int j=i;j<=m;j++)
            {
                int fx=getfa(e[j].u);
                int fy=getfa(e[j].v);
                if(fx!=fy)
                {
                    fa[fx]=fy;
                    cnt++;
                    if(cnt==n-1)
                    {
                        ans=min(ans,e[j].w-e[i].w);
                        break;
                    }
                }
            }
        }
        if(ans==inf)
            printf("-1\n");
        else printf("%d\n",ans);
    }
    return 0;
}
TI LP87745-Q1汽车雷达PMIC评估:从硬件设计到性能测试全解析 在汽车电子和高级驾驶辅助系统(ADAS)中,电源管理单元(PMIC)是确保传感器稳定可靠运行的核心。其工作原理在于集成多路高效电源转换器(如Buck、Boost)和精密监控电路,通过数字接口实现灵活配置与实时诊断。这项技术的核心价值在于为毫米波雷达等关键负载提供低噪声、高精度、满足严格时序与功能安全(ASIL)要求的供电方案,从而提升整个感知系统的信噪比与可靠性。其典型应用场景包括自动驾驶域控制器、车载传感器融合模块等。本文以德州仪器(TI)的LP87745-Q1专用PMIC及其评估模块(EVM)为例,深入 阅读详情

相关推荐

【比较器仿真】

比较器tran noise、pnoise仿真、噪声仿真、MC失调仿真

pickweb的博客 1万+

uva1395:最小生成树(Kruskal)

UVA1395 题意:让你找生成树当中,边的最大权和最小权的差值最小。 题解:时间限制3000ms,当然是暴力枚举差值。对边进行排序,枚举最小值和最大值,那么判断和中间的边能否构成树。一次AC。 代码: #include &lt;bits/stdc++.h&gt; using namespace std; int const inf = 0x7f7f7f7f; int const N =...

FlyingJack 260

【编号326】全国地灾数据全国25万多个地质灾害点空间分布数据

全国地质灾害点分布数据涵盖25万多个各类灾害点信息,为灾害防治提供重要依据。通过分析灾害分布规律,可识别高风险区,指导监测预警、应急避险和基础设施建设。多地成功案例(如湖北兴山崩塌避险、重庆长寿滑坡预警、湖南"挪床行动")证明,提前预警和科学防治能有效避免人员伤亡。云南省2024年通过预警体系成功避让31起灾害,保护1342人生命安全。这些实践表明,地质灾害防治需结合科技手段与群防体系,实现早预警、早处置。

千奇百怪无奇不有 1472

UVA1395 Slim Span(kruskal)

题目:Slim Span UVA 1395 题意:给出一副无向有权图,求生成树中最小的苗条度(最大权值减最小权值),如果不能生成树,就输出-1; 思路:将所有的边按权值有小到大排序,然后枚举每一条边,以这条边开始利用Kruskal算法生成树,生成过程中求出权值的最大值,这个最大值减去当前枚举的边的权值就是苗条度,再动态维护一下最小苗条度就可以了。 #include &lt;iostream...

sykai1的博客 257

Blender点云渲染实战:用Geometry Nodes快速搞定论文配图(附Cycles渲染技巧)

本文详细介绍了如何利用Blender的Geometry Nodes系统,高效地将三维点云数据转化为高质量的科研论文配图。通过实战步骤,从数据导入、节点化几何处理、材质赋予到Cycles渲染引擎的优化设置,手把手教你制作出专业、美观的可视化图像,助力科研成果展示。

hp777的博客 265

杰理-tone

低音质格式切换高音质格式:切换提示音格式,未导出,编译下载没有提示音;提示音导出,再次编译下载,提示音正常高音质格式切换低音质格式:不需要导出,直接编译下载,提示音正常。

m0_67447112的博客 955

洛谷 题解 UVA1395 【苗条的生成树 Slim Span】

【题意】 给出一个\(n(n<=100)\)个节点的的图,求最大边减最小边尽量小的生成树。 【算法】 \(Kruskal\) 【分析】 首先把边按边权从小到大进行排序。对于一个连续的边集区间\([L,R]\),如果这些边使得\(n\)个点全部联通,则一定存在一个苗条度不超过\(W[R]-W[L]\)的生成树(其中\(W[i]\)表示排序后第\(i\)条边的权值)。 从小到大枚举\(L\),对...

weixin_33835103的博客 311

飞牛fnNAS虚拟机标准安装

飞牛NAS是一款基于Debian开发的国产免费NAS系统,支持x86架构设备,可将闲置硬件改造为NAS服务器。系统安装简便,支持多种存储模式与硬盘休眠功能,具备智能影视管理、照片备份等实用功能,并提供多种远程访问方式。飞牛NAS还支持Docker扩展,目前已承诺永久免费。文章详细介绍了在VMware虚拟机中安装飞牛NAS的步骤,包括下载镜像、创建虚拟机、初始化设置等过程,并展示了创建共享文件夹等基本操作,帮助用户快速上手这款功能强大的免费NAS系统。

dgnankai的专栏 3260

UVA-1395(最小瓶颈生成树)

题目地址戳我题意:多组数据,每组数据第一行给出N,M代表点和边的数量。接着M行每行u,v,w代表u和v之间的权值为w(有向无向貌似不影响),对于图中的每个生成树,求出生成树中最大权值与最小权值的差,求出所有生成树中最大权值与最小权值差的最小值。思路:对权值排序后枚举L~R的区间即可。代码#include<stdio.h> #include<string.h> #include<queue> #inc

Prim 765

Spring Boot 调用豆包大模型如何开启联网搜索?

场景推荐方案有权限创建 Bot + 需强集成✅ 使用bot-xxxx无 Bot 权限 / 追求通用性✅ 自行集成搜索引擎 + 普通豆包模型仅需基础对话❌ 无需考虑联网豆包大模型确实支持联网搜索,但前提是:你用的是“智能体 Bot”,且它被配置了“网页搜索”插件,并调用正确的 API 端点。希望本文能帮你少走弯路,快速构建出真正“知天下事”的智能助手!

lpfasd123的博客 1124

如何在飞腾平台上安装Ubuntu操作系统

注意: 若主板上配置的是NVME硬盘,在进行内核配置时,需要将内核的NEME驱动勾选上,否则移植内核时,无法找到文件系统,进不去操作系统。可以通过rufus软件将镜像做到U盘中,本次使用版本为Rufus 3.9.124 ,其他版本也可以。不要下载live版本的,没有准备网络环境,是一个头疼的事情,笔者暂时没有实现网络安装。将U盘接到主板usb口上,接上串口,显示器,,必需串口有打印才可以安装。可以通过dd命令,将iso安装到U盘。安装的是最小系统,缺少很多命令,需要联网更新,或则更换飞腾专用内核。

技术联盟 2645

[UVA 1395]苗条的生成树

题意简述 求所有生成树中最大边权与最小边权差最小的,输出它们的差值。 显然我们随便跑一个Kruskal可以得到所有生成树中最大边权最小的边。但是最小边权不好保证。注意到n<=100,m <= (n - 1)n/2即m <= 4950,那就暴力一下。对边排好序后,从头枚举每条边作为最小生成树的第一条边,然后往后找边,跑出小于m个生成树,每跑出一个更新答案就行。 一次AC,时间...

weixin_30687811的博客 173

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Slim Span (UVA - 1395,最小生成树 + 简单应用)

一.题目链接: UVA-1395 二.题目大意: 给定 n 个点,m 条边的无向图. 定义生成树的 “苗条度” == max树边权值 - min树边权值. 求生成树的最小苗条度. 三.分析: 大体思路就是用 Kruskal 算法求解最小生成树. 由于生成树的 “苗条度” == max树边权值 - min树边权值 所以先sort 一遍边的权值 然后从小到大枚举生成树的最小权值边...

The___Flash的博客 273

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

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

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

Poj 352 UVA oj 1395 Slim Span 最小生成树应用

Slim Span Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 7147 Accepted: 3783 DescriptionGiven an undirected weighted graph G, you should find one of spanning trees specified as

swust_fang 746

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

UVA 1395 Slim Span(最小生成树)

题目地址:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4141 思路:将边按从小到大排序,设l,r。则在[l,r]范围内的值一定小于等于w[r]-w[l],则若l...r之间的边可形成生成树,则更新答案,同时将l++,r=l。 #include #

哆啦AC梦的博客 623

Slim Span UVA - 1395(并查集)

                                     Slim Span        UVA - 1395                       题目链接:https://vjudge.net/problem/UVA-1395    题意:给定n个节点的图,求一个生成树使得生成树的最大边-最小边的差最小。    题解:按权值排序后遍历L-R的点看是否满足生成树的条件,满...

sortmin的博客 301

uva 1395 Slim Span[最小生成树]

vua1395; 最小生成树; Kruskal算法

xxxxx 1198

UVA1395 苗条的生成树 Slim Span —— kruskal算法

kruskal算法 求加权连通图的最小生成树的算法。 Kruskal算法的第一步是给所有边按照从大到小的顺序排列。这一步可以直接使用库函数qsort或者sort.接下来从小到大一次考察每个边(u,v)。 情况1:u和v在同一个连通分量中,那么加入(u,v)后会形成环,因此不能选择。 情况2:如果u和v在不同的连通分量,那么加...

ZangWhe 377

UVA1395 苗条的生成树 Slim Span

https://www.luogu.com.cn/problem/UVA1395 最小生成树,枚举每条边,从这个边开始变量能够生成的最小生成树,统计答案。 #include<bits/stdc++.h> #define ll long long #define ios ios::sync_with_stdio(false);cin.tie(0); cout.tie(0); using namespace std; const int maxn=1e3+5,INF=0x3f3f3f3f; int

weixin_45405831的博客 194

UVA1395SlimSpan

本题用到了借用了Kruskal算法和并查集的实现方法。 关键在于对边权值的排列和枚举。

qq_16603365的博客 268

UVA1395 Slim Span && hdu 1598 find the most comfortable road

UVa 1395 (LRJ紫书P358) 把边权按从小到大排序,对于一个连续的区间[L,R],如果这些边使得n个点全部连通,一定存在一个苗条度&lt;=W[R]-W[L] (W[R]是最大值) 从小到大枚举L,对于每个L,从小到大枚举R(R&gt;=L),同时用并查集将新加入【L,R】的边两端合成一个集合,当所有点连通时停止枚举R,换下一个L继续枚举 注意所有的L都要枚举 #incl...

iroy33的博客 183

Slim Span UVA - 1395

#include &lt;iostream&gt; #include &lt;bits/stdc++.h&gt; #define inf 10000000 #define maxn 110 #define maxm 110*50 using namespace std; struct Node { int u,v,w; bool operator &lt; (const Node...

剑似生平 299

UVA 1395 Slim Span 最小生成树

题意:给你一个图,让你求这个图中所有生成树中满足题目条件的,这个条件是生成树中最长边与最短边的差值最小。 思路:根据最小瓶颈生成树的定义:在一个有权值的无向图中,求一个生成树最大边的权值尽量小。那么我可以从小到大枚举每一条边作为我所求生成树的最短边(即第一次以最短边求最小生成树,第二次删除第一条边,以第二条边为最短边求最小生成树,第三次删除第一条边和第二条边,以第三边为最短边求最小生成树。)然后

Ash.的博客 968

UVa1395 && POJ 3522 Slim Span [最小生成树]

UVa POJDescription求苗条度最小的生成树 苗条度指该生成树的最大边 - 最小边AlgorithmKruskal变形 先sort 然后枚举最小边 构建最小生成树HintUVa JAVA的RE 不知道为何= = POJ的JAVA才1.5 λ表达式是JAVA 1.8才有的 然后本人才疏学浅 除了λ表达式以外不会写自定义sort比较 所以CE = = C++就过了 会了C++

more time 2209

Uva1395 Slim Span(最小生成树)

题意:   给出一个n个结点的无向图,找一棵苗条度(最大边减去最小边)最小的生成树。图中不含重边和自环。 题解:   首先对边的权值大小排序,从小到大开始枚举最小生成树。 #include <iostream> #include <cstring> #include <algorithm> #include <cstdio> #include <map> #include <queue> using namespace std; c.

CV工程师呀 226

UVA 1395 - Slim Span(MST)

UVA 1395 - Slim Span 题目链接 题意:给定一些结点和边,要求出最苗条度最小的生成树,苗条度定义为:生成树中最大权的边减去最小权的边的值 思路:类似建最小生成树的算法,多一步枚举起始边即可 代码: #include #include #include using namespace std; const int N = 105; const

Remilia's 1348
上一篇: uva1376-Animal Run(最小割+对偶图+最短路)
下一篇: oedcYTfnTL
Flyyy__
博客等级 码龄8年 3粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值