HDU 5253 连接的管道(最小生成树)

MRAM与PIC18F46K42的工业存储方案:从选型到SPI驱动实战 工业嵌入式场景下,数据存储的可靠性与实时性面临严苛挑战。设备高频写入、掉电时机不可控,传统EEPROM和NOR Flash在寿命、写入速度与擦除机制上难以两全。磁性随机存取存储器(MRAM)采用磁化方向存储数据,具备非易失、无需擦除、写入耐久性极高等特性,为工业数据记录提供了全新路径。本文基于Everspin MR25H40CDF串行MRAM与Microchip PIC18F46K42 MCU的组合,从选型对比、硬件接线到SPI驱动开发,完整解析一套面向掉电保存、运行日志与配置存储的嵌入式方案。MRAM的高 阅读详情

连接的管道

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3254    Accepted Submission(s): 1085


Problem Description
老 Jack 有一片农田,以往几年都是靠天吃饭的。但是今年老天格外的不开眼,大旱。所以老 Jack 决定用管道将他的所有相邻的农田全部都串联起来,这样他就可以从远处引水过来进行灌溉了。当老 Jack 买完所有铺设在每块农田内部的管道的时候,老 Jack 遇到了新的难题,因为每一块农田的地势高度都不同,所以要想将两块农田的管道链接,老 Jack 就需要额外再购进跟这两块农田高度差相等长度的管道。

现在给出老 Jack农田的数据,你需要告诉老 Jack 在保证所有农田全部可连通灌溉的情况下,最少还需要再购进多长的管道。另外,每块农田都是方形等大的,一块农田只能跟它上下左右四块相邻的农田相连通。
 

Input
第一行输入一个数字 T(T≤10) ,代表输入的样例组数

输入包含若干组测试数据,处理到文件结束。每组测试数据占若干行,第一行两个正整数  N,M(1≤N,M≤1000) ,代表老 Jack 有N行*M列个农田。接下来 N 行,每行 M 个数字,代表每块农田的高度,农田的高度不会超过100。数字之间用空格分隔。
 

Output
对于每组测试数据输出两行:

第一行输出:"Case #i:"。i代表第i组测试数据。

第二行输出 1 个正整数,代表老 Jack 额外最少购进管道的长度。
 

Sample Input
  
2 4 3 9 12 4 7 8 56 32 32 43 21 12 12 2 3 34 56 56 12 23 4
 

Sample Output
  
Case #1: 82 Case #2: 74
 

Source
 

Recommend
hujie


将两块田的高度差作为边存储,套最小生成树模板即可。

#include<bits/stdc++.h>
using namespace std;
const int N = 1000 + 10 ;
int T[N*N];
struct xx
{
    int u,v,len;
} f[N*N*4];
int a[N][N];
int cmp(xx a,xx b)
{
    return a.len<b.len;
}
int find(int x)
{
    if(T[x]==x)
        return x;
    else
        return T[x]=find(T[x]);
}
int merge(int u,int v)
{
    int t1=find(u);
    int t2=find(v);
    if(t1!=t2)
    {
        T[t1]=t2;
        return 1;
    }
    return 0;
}
int main()
{
    int t,p=0;
    scanf("%d",&t);
    while(t--)
    {
        int n,m;
        scanf("%d%d",&n,&m);
        for(int i=1; i<=m*n; i++) T[i]=i;
        int x=0;
        for(int i=0; i<n; i++)
        {
            for(int j=0; j<m; j++)
            {
                scanf("%d",&a[i][j]);
                if(j>0)
                {
                    f[x].u=i*m+j;
                    f[x].v=i*m+j+1;
                    f[x++].len=abs(a[i][j]-a[i][j-1]);
                }
                if(i>0)
                {
                    f[x].u=i*m+j+1;
                    f[x].v=(i-1)*m+j+1;
                    f[x++].len=abs(a[i][j]-a[i-1][j]);
                }
            }
        }
        sort(f,f+x,cmp);
        int sum=0,num=0;
        for(int i=0; i<x; i++)
        {
            if(merge(f[i].u,f[i].v))
            {
                sum+=f[i].len;
                num++;
            }
            if(num>=n*m-1)
                break;
        }
        printf("Case #%d:\n",++p);
        printf("%d\n",sum);
    }
}


普元EOS8.3精简版安装指南:从零开始搭建低代码开发环境 本文详细介绍了普元EOS8.3精简版的完整安装流程。从JDK1.8环境准备、MySQL数据库配置与初始化,到核心配置文件修改、服务启动与登录验证,提供了从零开始搭建低代码开发环境的清晰步骤和常见问题排坑指南,帮助开发者快速部署并体验平台核心功能。 阅读详情

相关推荐

基于RK3588的高效音视频对讲系统设计与实现

本文详细介绍了基于RK3588芯片的高效音视频对讲系统设计与实现。文章深入剖析了RK3588在8K编解码、高性能音频DSP及丰富接口方面的优势,并提供了从开发环境搭建、分层软件架构设计,到视频采集编码、音频回声消除及低延迟网络传输的完整实战指南,旨在帮助开发者充分利用该芯片硬件能力,构建稳定、低延迟的实时通信系统。

dapp9builder的博客 255

POJ1251 Jungle Roads【最小生成树】

Jungle Roads Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 32572   Accepted: 15237 Description The Head Elder of the tropical island of Lagrishan has a problem. A b...

逐梦者 1578

COMSOL+AI实战:5个超实用技巧让你的仿真效率翻倍(附Python代码)

本文详细介绍了如何将人工智能(AI)与COMSOL仿真软件结合,通过Python脚本实现五大实用技巧,包括自动化生成数据集、构建代理模型、集成AI优化算法、利用神经网络加速场量求解以及智能结果分析,从而显著提升多物理场仿真的效率和自动化水平。

weixin_29230865的博客 443

2015 百度之星 初赛2 1002 连接的管道(最小生成树)

2015 百度之星 初赛2 1002 解题报告

GODSPEED 789

告别GPS,用Sentinel-1数据+Python实战SBAS-InSAR监测城市地面沉降(保姆级教程)

本文详细介绍了如何利用Sentinel-1数据和Python实现SBAS-InSAR技术监测城市地面沉降。通过保姆级教程,从环境配置、数据获取到干涉处理、时序分析和形变反演,逐步解析全流程技术细节,帮助读者掌握毫米级精度的形变监测方法,并以上海陆家嘴区域为例展示实际应用效果。

weixin_32771907的博客 534

uni-app 实现高德 / 百度 / 腾讯地图多端导航跳转(H5最全方案)

本文介绍了一套生产级可复用的多地图导航Hook封装方案。针对开发中常见的经纬度顺序混乱、中文乱码、参数不统一等问题,提供了统一解决方案。方案支持高德、百度、腾讯三大地图平台,封装了各平台的URI参数处理逻辑,包括坐标顺序转换、名称编码、导航模式适配等核心功能。通过组合式API设计,开发者只需调用统一入口即可实现多地图导航跳转,同时保留单独调用各平台的能力。文中还总结了6大常见坑点,并推荐默认使用高德地图作为最稳定的导航方案。该方案适用于车辆定位、物流配送等多种业务场景,可封装为可复用的Hooks组件。

专注于前端开发与实战技巧,记录从零到一的学习与项目经验。分享 Vue3 / JavaScript / TypeScript / Flutter /Uniapp等前端技术,以及 性能优化、工程化、最佳实践。 537

51Nod_1212 无向图最小生成树

                                        51Nod_1212 无向图最小生成树                                              http://www.51nod.com/Challenge/Problem.html#!#problemId=1212   题目 N个点M条边的无向连通图,每条边有一个权值,求该图...

逐梦者 826

《计算机视觉:从入门到精通》技术手册 第1章 计算机视觉概述与历史演进

视觉感知与机器视觉在工程实践中常被混用,但二者存在本质差异。视觉感知强调对光学信号的语义理解与场景解释,核心在于从二维投影重建三维世界的物理与语义属性。该领域关注遮挡处理、光照变化、材质反射等复杂因素的建模,其目标是实现类似人类视觉系统的场景理解能力。机器视觉则侧重于工业场景中的精密测量与控制,通常基于结构化光源、已知几何约束与标定参数,执行边缘检测、尺寸测量、位置定位等任务。前者面向开放环境的通用理解,后者面向受控环境的精确执行。

u012133341的博客 269

HDU - 5253 连接的管道

最小生成树的入门题: 最小生成树有两个算法,一个是prim算法,一个是krusal算法。最小生成树的前提是图是连通的。(算法详解,等深度学习后再来补) 老 Jack 有一片农田,以往几年都是靠天吃饭的。但是今年老天格外的不开眼,大旱。所以老 Jack 决定用管道将他的所有相邻的农田全部都串联起来,这样他就可以从远处引水过来进行灌溉了。当老 Jack 买完所有铺设在每块农田内部的管道的时候,老 Ja...

i_like1ac的博客 212

Windows 10 本地硬盘变成了可弹出磁盘

今天新装了系统, 电脑是一个SSD+HHD, 没想到装好之后右下角显示可安全删除设备, 两个硬盘在那里. 这还得了. 查了一下午, 大致知道了是什么问题. Standard SATA AHCI controller使用高性能的硬盘模式就会把硬盘看作是一个可热插拔的存储器, 所以自然就会显示可弹出. 如果你的BIOS支持关闭HotSwap或者HotPlug, 那么直接关闭就可以了. 或者你直接在BIOS里把磁盘模式改为IDE, 不过这样就发挥不好你SSD的高性能了. 还有一种解决方法, 就是手动让系统把这两个

落日之城 4万+

OPTEE常见13类问题与解答

OPTEE常见13类问题并解答

AI-安全-功耗 1204

【HDU】5253 - 连接的管道(最小生成树)

点击打开题目 连接的管道 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2353    Accepted Submission(s): 834 Problem Description 老 Jack

wyg1997 1191

软件集成:Simulink与STM32联合开发

本文首先通过一个简单的Simulink模型生成代码,然后将代码copy到一个STM32工程中去编译软件。最后将软件下载到STM32F407中,通过串口输出Simulink计算的结果。 阅读本文需要有一定的STM32开发调试经验和Simulink代码生成经验。关于Simulink代码生成可以参考博主的专栏《Simulink代码生成》。 文章目录1 问题引入2 集成方案3 建模与编程过程3.1 Simulink模型搭建3.2 代码生成配置3.3 STM32工程搭建3.4 STM32的main.c文件修改3.4.

u013288925的博客 2万+

连接的管道 (HDU - 5253 ,自己建边的最小生成树)

一.题目链接: HDU-5253 二.题目大意: 有一个 n × m 的图,每个点都有自己的地势高度 先要修建管道,使得每个点都联通(每个点都只能与其上下左右的点建立管道) 求所需最少的管道长度. 三.分析: 读入图后,以某个点的 上方向 和 左方向 建边. 之后最小生成树 Krual 算法即可. 注意:存边时数组要开 M * M * 2 + 5!因为这个地方WA了好几次. 四...

The___Flash的博客 322

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

hdu 5253 连接的管道 最小生成树

题意:一个矩阵中,一个点与其上下左右均有边,边权为差值,求最小生成树。 思路:建好图,套克鲁斯卡尔。 数组大小开错,找了一个小时。跟个智障一样。 #include using namespace std; const int maxn = 2000; int mp[maxn][maxn]; int f[1000*1000+10]; //错误点 struct edge { int fr

chen_minghui的博客 461

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

hdu5253连接的管道(最小生成树)

老 Jack 有一片农田,以往几年都是靠天吃饭的。但是今年老天格外的不开眼,大旱。所以老 Jack 决定用管道将他的所有相邻的农田全部都串联起来,这样他就可以从远处引水过来进行灌溉了。当老 Jack 买完所有铺设在每块农田内部的管道的时候,老 Jack 遇到了新的难题,因为每一块农田的地势高度都不同,所以要想将两块农田的管道链接,老 Jack 就需要额外再购进跟这两块农田高度差相等长度的管道。  ...

qq_43301061的博客 283

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

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

连接的管道 HDU 杭电5253 【最小生成树】

http://acm.hdu.edu.cn/showproblem.php?pid=5253 Problem Description 老 Jack 有一片农田,以往几年都是靠天吃饭的。但是今年老天格外的不开眼,大旱。所以老 Jack 决定用管道将他的所有相邻的农田全部都串联起来,这样他就可以从远处引水过来进行灌溉了。当老 Jack 买完所有铺设在每块农田内部的管道的时候,老 J

Determined&Diligent的专栏 593

hdu5253 连接的管道 最小生成树水题

//给一个n*m的农田的高度,水的灌溉能从高到低 //因为每一块农田的地势高度都不同,所以要想将两块农田的管道链接, //就需要额外再购进跟这两块农田高度差相等长度的管道。 //问最少需要多少管道长度能将所有的农田连接起来 //很明显的最小生成树 #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> usi

ijbuhv的专栏 1047

HDU 5253 连接的管道 【最小生成树】

题目链接 解题思路这就是一道简单的最小生成树的模板题。只要向左向右去走就行。代码部分#include <iostream> #include <string.h> #include <stdio.h> #include <algorithm> #include <math.h> using namespace std; int maps[1010][1010]; int pre[1010*1010]

长颜草的博客 342

hdu 5253 连接的管道(最小生成树)

连接的管道 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2445    Accepted Submission(s): 886 Problem Description 老 Jack 有一片农田,以往几年都是靠天

neversayno_yl的博客 478

HDU - 5253 连接的管道 (卡鲁斯卡尔)最小生成树

HDU - 5253 连接的管道 Time Limit: 1000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & %I64u Submit Status Description 老 Jack 有一片农田,以往几年都是靠天吃饭的。但是今年老天格外的不开眼,大旱。所以老 J

yanghui07216的博客 606

HDU 5253 连接的管道 (最小生成树)

连接的管道 Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 653Accepted Submission(s): 268 Problem Description 老 Jack 有一片农田,以往几年都是靠天吃饭的。但是今年老天格...

weixin_33972649的博客 68

(最小生成树 Kruskal)HDU 5253 连接的管道

题意最小生成树思路Kruskal代码#include <iostream> #include <stdio.h> #include <algorithm> using namespace std; const int N=1005; const int M=N*N; int num[N][N]; int father[M]; struct Edge{ int u,v,w;//本位,前位,两者

AC~ 389

连接的管道-HDU - 5253-并查集最小生成树

连接的管道 老 Jack 有一片农田,以往几年都是靠天吃饭的。但是今年老天格外的不开眼,大旱。所以老 Jack 决定用管道将他的所有相邻的农田全部都串联起来,这样他就可以从远处引水过来进行灌溉了。当老 Jack 买完所有铺设在每块农田内部的管道的时候,老 Jack 遇到了新的难题,因为每一块农田的地势高度都不同,所以要想将两块农田的管道链接,老 Jack 就需要额外再购进跟这两块农田高度差相等长

Gyd&01 387

Hdu 5253 连接的管道【思维建图+最小生成树】

连接的管道 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2589    Accepted Submission(s): 933 Problem Description 老 Jack 有一片农田,以往几年都是靠天

mengxiang000000 460

HDU 5253 连接的管道(最小生成树-Kruskal+并查集)

连接的管道 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2016 Accepted Submission(s): 709 Problem Description 老 Jack 有一片农田,以往几年都是靠天吃饭的。但是今年老天

Sterben_Da的博客 579
上一篇: POJ 2406 Power Strings(kmp)
下一篇: 2016福州大学第十三届程序设计竞赛 Problem C 平行四边形数(思维)
信鸦
博客等级 码龄10年 10粉丝 133原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值