HDU 5253 连接的管道

华为海思2026届数字IC秋招笔试高频考点解析与实战技巧(2025最新版) 本文深入解析华为海思2026届数字IC秋招笔试的高频考点与实战技巧,涵盖时序优化、低功耗设计、DFT规则等核心模块。针对2025年最新真题,提供详细的解题思路和工程经验,帮助考生高效备考。特别关注SystemVerilog约束随机测试等新增考点,助力考生在秋招笔试中脱颖而出。 阅读详情

分析:题意就不说了,因为这题的高度差比较小,所以可以用并查集暴力求解,做的时候发现带参数的宏定义的效率很低,比如我用# define abs(x) (x>0?x:-(x)) 这样就超时了,写个函数就不会超时,用暴力的话,一不小心就超时了。这题还可以用Kruskal的最小生成树来做,但速度居然没有暴力的快,也许是我写的姿势不对。

并查集暴力:

# include <stdio.h>
# include <string.h>
  int n,m,map[1005][1005],root[1000005];
  void Init()
  {
      int i;
      for(i=0;i<n*m;i++)
        root[i]=i;
  }
  int Find(int x)
  {
      if(root[x]!=x)
        root[x]=Find(root[x]);
      return root[x];
  }
  int main()
  {
      int i,j,k,sum,T,t=1,fa,fb;
      scanf("%d",&T);
      while(T--)
      {
          scanf("%d%d",&n,&m);
          Init();
          for(i=0;i<n;i++)
            for(j=0;j<m;j++)
              scanf("%d",&map[i][j]);
          for(i=0;i<n;i++)
            map[i][m]=1000;
          for(j=0;j<m;j++)
            map[n][j]=1000;
          for(k=0,sum=0;k<=100;k++)//从高度差为0到100找一遍
            for(i=0;i<n;i++)
              for(j=0;j<m;j++)
              {
                  if(map[i][j]-map[i][j+1]==k||map[i][j+1]-map[i][j]==k)
                  {
                      fa=Find(i*m+j);
                      fb=Find(i*m+j+1);
                      if(fa!=fb)
                        root[fa]=fb,sum+=k;
                  }
                  if(map[i][j]-map[i+1][j]==k||map[i+1][j]-map[i][j]==k)
                  {
                      fa=Find(i*m+j);
                      fb=Find(i*m+j+m);
                      if(fa!=fb)
                        root[fa]=fb,sum+=k;
                  }
          }
          printf("Case #%d:\n%d\n",t++,sum);
      }
      return 0;
  }

Kruskal最小生成树:

# include <stdio.h>
# include <algorithm>
  using namespace std;
  struct edge
  {
      int u,v,w;
  }e[2000005];
  int n,m,k,t=1,map[1005][1005],root[1000005];
  int Find(int x)
  {
      if(root[x]!=x)
        root[x]=Find(root[x]);
      return root[x];
  }
  int abs(int x)
  {
      return x>0?x:-x;
  }
  int cmp(edge a,edge b)
  {
      return a.w<b.w;
  }
  void Kruskal()
  {
      int i,fa,fb,sum=0;
      for(i=0;i<n*m;i++)
        root[i]=i;
      sort(e,e+k,cmp);
      for(i=0;i<k;i++)
      {
          fa=Find(e[i].u);
          fb=Find(e[i].v);
          if(fa!=fb)
            root[fa]=fb,sum+=e[i].w;
      }
      printf("Case #%d:\n%d\n",t++,sum);
  }
  int main()
  {
      int i,j,T;
      scanf("%d",&T);
      while(T--)
      {
          scanf("%d%d",&n,&m);
          for(i=0;i<n;i++)
            for(j=0;j<m;j++)
              scanf("%d",&map[i][j]);
            for(i=0,k=0;i<n;i++)
              for(j=0;j<m-1;j++)
              {
                  e[k].u=i*m+j;
                  e[k].v=i*m+j+1;
                  e[k++].w=abs(map[i][j]-map[i][j+1]);
              }
            for(i=0;i<n-1;i++)
              for(j=0;j<m;j++)
              {
                  e[k].u=i*m+j;
                  e[k].v=i*m+j+m;
                  e[k++].w=abs(map[i][j]-map[i+1][j]);
              }
              Kruskal();
      }
      return 0;
  }


标准高斯过程回归(Gaussian Processes Regression, GPR)从零开始,公式推导 标准高斯过程回归从零开始公式推导 阅读详情

相关推荐

android10 部分机型(华为)无法正常更新安装app

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=file://storage/emulated/0/文件夹名/***.apk typ=application/vnd.android.package-archive }

森森先生的博客 3927

HDU 5253 最小生成树(kruskal)+ 并查集

题目链接 #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> #define N 1000010 using namespace std; struct node { int a;//端点1 int b;...

weixin_30512089的博客 90

从Frenet坐标系到多项式拟合:Lattice Planner核心原理拆解与调参指南

本文深入解析了自动驾驶轨迹规划中Lattice Planner的核心原理,重点阐述了其在Frenet坐标系下解耦横纵向规划、利用五次和四次多项式拟合轨迹的数学基础。文章提供了从坐标系转换、采样策略到成本函数设计的完整工程实践指南,并分享了关键的参数调优经验,旨在帮助开发者高效实现稳定、平滑且安全的轨迹规划。

tech5的博客 1111

HDU 5253-连接的管道

连接的管道 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4473    Accepted Submission(s): 1413 题目链接:连接的管道 Problem Description

别止的博客 371

计算机组成原理课程设计_微程序控制的简单模型机设计

微程序控制的简单模型机设计 要求 基本要求 完成一个简单主机的设计,模型机应具备如下能力:在自行设计的指令集基础上,运行自行编写的简单用户程序,实现特定运算功能。 弹性要求 在此基础上,完成必要的扩展,实现模型机的功能扩展设计,包括:实现多种运算功能(指令集的扩充)、支持更为丰富的寻址方式、有更为完善的微程序设计等。 实验软件和硬件环境 QuartusII, FPGA计算机组...

sailist的记录站 3万+

基于步科(Kinco HMI 2.5)的组态软件使用

本篇介绍Kinco HMI 2.5的组态软件使用,图标如下 目录   一、新建工程并配置连接 1.1 根据工程选择PLC与HMI型号 1.2 配置PLC连接与选项 二、组态画面编辑 2.1 打开画面窗口 2.2 编辑画面 2.3 组态变量与PLC程序变量连接 三、组态程序下载到HMI 3.1 连接 3.2 编译 3.3 下载 一、新建工程并配置连接 1.1 根据工...

ACanswer的专栏 1万+

【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

RD算法(一)初出茅庐 —— 算法原理

在《SAR成像概述》的第4节已经对各种SAR成像算法进行了一个简要的概述,本文就直接从RD算法讲起了。

5286

【HDU 5253 连接的管道】

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

楚江枫 558

Transformer实战——Transformer自编码模型

自编码模型依赖于原始 Transformer 编码器,并且在解决分类问题时非常高效。除了 BERT 外,还有许多流行的自编码模型,在本节中,我们将一些除 BERT 外的自编码模型,这些模型的目标是通过优化预训练过程、增加层数或头数、改善数据质量、设计更好的目标函数等,来在下游任务上取得更好的表现。这些改进大致可以分为两个方面,更好的架构设计选择和预训练控制。

盼小辉丶的博客 9319

投稿前利用GPT-5.5给论文做一次深度校对,投稿命中率翻倍!

3)一致性:请对比摘要的结论与正文(如果我也提供了正文),确保完全一致。请严格检查结果部分,确保客观性:1)纯粹性检查:标出所有包含“为什么”(解释)或“这意味着什么”(暗示)的主观语句,这些应移至讨论部分。请你帮我评估讨论部分的深度:1)解释与对比:检查每一项主要结果是否都解释了原因,并引用了前人研究进行对比(一致或相悖)。我见过太多人把校对理解为检查错别字了,实际上,校对要看的远不止这个,像逻辑是否连贯、术语是否前后一致、图表有没有被正确引用等等的这些细节,往往决定了文章是秒被拒,还是能顺利进入外审。

智能AI让学术科研更容易 412

hdu 5253 连接的管道

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

dong12276的博客 98

Open Dynamics Engine(ODE)物理引擎教程(1)--下载与安装准备

引言 ODE是一个免费的工业级库,用于模拟关节式刚体动力学,例如地面车辆、腿部生物和虚拟现实环境中的移动对象。它具有快速、灵活、健壮和独立于平台的特点,具有先进的关节、摩擦接触和内置的碰撞检测功能。 项目主页:http://www.ode.org/ 线上手册:http://ode.org/wiki/index.php?title=Manual 本教程为博主亲自亲测过程的总结,转载请注明出处! ...

腿足机器人领域 2216

hdu 5253连接的管道

传送门:http://acm.hdu.edu.cn/showproblem.php?pid=5253 #include<iostream> #include<cstdio> #include<algorithm> using namespace std; const int maxn =1010; int fa[5000005]; int maze[maxn][...

i_like1ac的博客 191

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

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

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

HDU - 5253 连接的管道

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

i_like1ac的博客 212

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

hdu 5253 连接的管道(kruskal)

hdu 5253 连接的管道(kruskal)(2015年百度之星程序设计大赛 - 初赛(2)) Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 5253 Description 老 Jack 有

珞 378

Statistics and Machine Learning Toolbox

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

HDU 5253:连接的管道

最小生成树模板题 AC代码: #include #include #include #include using namespace std; const int maxn = 2*1e6; int Map[1000][1000]; int father[100005]; int N,M,cnt; int dir[2][2] = {{1,0},{0,1}}; //向下,向右

温姑娘的博客 445

HDU - 5253——连接的管道

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

lose__way的博客 299

[HDU - 5253]连接的管道

克鲁斯卡尔(最小生成树) #include <stdio.h> #include <math.h> #include <iostream> #include <algorithm> #include <math.h> #include <stdlib.h> #include <string.h...

dlpnyd1317的博客 173

HDU - 5253 - 连接的管道

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

无知而狂妄 389
上一篇: HDU 5285 wyh2000 and pupil
下一篇: HDU 1864 最大报销额
丶阿明
博客等级 码龄12年 70粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值