社团活动每日一题:蓝桥杯2021省赛 路径

本博客介绍了一道关于最短路径的蓝桥杯竞赛题目,题目要求在特定条件下计算节点1到节点2021的最短路径长度。通过动态规划的方法,可以求得节点间的最短路径。代码示例展示了如何利用最小公倍数计算边的长度,并通过双重循环更新dp数组以找到最短路径。最后输出dp[2021]即为答案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

路径

蓝桥杯2021省赛 普通填空

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

小蓝学习了最短路径之后特别高兴,他定义了一个特别的图,希望找到图 中的最短路径。

小蓝的图由 2021 个结点组成,依次编号 1 至 2021。

对于两个不同的结点 a, b,如果 a 和 b 的差的绝对值大于 21,则两个结点 之间没有边相连;如果 a 和 b 的差的绝对值小于等于 21,则两个点之间有一条 长度为 a 和 b 的最小公倍数的无向边相连。

例如:结点 1 和结点 23 之间没有边相连;结点 3 和结点 24 之间有一条无 向边,长度为 24;结点 15 和结点 25 之间有一条无向边,长度为 75。

请计算,结点 1 和结点 2021 之间的最短路径长度是多少。

提示:建议使用计算机编程解决问题。

运行限制

  • 最大运行时间:1s

  • 最大运行内存: 128M

AC代码

#include <iostream>
using namespace std;
const int INF = 999999999;
int dp[2030];
int min(int x,int y){ return x<y?x:y; }
int gcd(int x,int y){
  if(x<y)return gcd(y,x);
  if(x%y)return gcd(x%y,y);
  return y;
}
int lcm(int x,int y){
  return x*y/gcd(x,y);
}
int main()
{
  for(int i=2;i<=2021;i++)dp[i]=INF;
  for(int i=1;i<2021;i++){
    for(int j=i+1;j-i<=21&&j<=2021;j++){
      dp[j] = min(dp[j],dp[i]+lcm(i,j));
    }
  }
  cout<< dp[2021];
  return 0;
}

解析

首先,在学习这道题的解法之前,笔者建议先了解递归动态规划(dp)的定义,熟悉一下两者在自己常用语言的实现方法后,再了解一下辗转相除法求最大公约数的知识。

这里有一个数学公式,用来计算最小公倍数的:

GCD(x,y) * LCM(x,y) == x * y

GCD:最大公约数

LCM:最小公倍数

所以这道题所需要的最小公倍数就由这个公式来求(不要忘了检查数字是否越界,虽然这道题没有)。

然后就是dp的过程了,活用for循环,将与第 i 个点有点连接的路径长都求出来,然后取最小值。当然别忘了把数组初始化为极大值INF,不然答案永远只能是0。

<think>好的,我现在需要帮用户制定物联网应用技术专业大一下学期的学习规划。首先,我得先了解这个专业大一下学期通常会开设哪些课程,可能包括专业基础课公共课。然后要考虑实践方面的内容,比如实验、项目或者竞。此外,还需要建议一些学习方法资源,以及可能的职业发展方向。 用户的需求是“介绍物联网应用技术大一下半年规划”,所以我需要结构清晰,分模块说明。可能分为课程学习、技能提升、实践项目、竞参与、资源推荐、职业规划等几个部分。每个部分要具体,给出可行的建议,比如具体的课程名称,推荐的学习平台,常见的竞类型等。 需要注意的是,用户是大一学生,可能对专业还不太熟悉,所以内容要易于理解,避免使用过于专业的术语,或者如果使用的话,要适当解释。同时,要强调基础的重要性,比如编程语言、电路基础等,打好基础对后续学习很关键。 另外,可能需要提醒学生平衡学习与实践,参加社团或实验室,积累项目经验。还有考取相关证书,比如物联网工程师认证,但大一可能还早,可以提一下为未来做准备。 要检查是否有遗漏的部分,比如时间管理、学习方法建议,或者推荐书籍、在线课程等资源。还要考虑学生的兴趣培养,比如关注行业动态,参加讲座等。 最后,确保建议切实可行,符合大一下学期的时间安排,不会过于繁重,而是循序渐进。语言要口语化,避免生硬,让读者觉得亲切自然。</think>物联网应用技术专业大一下学期的学习规划可分为以下几个关键模块,建议循序渐进地落实: --- ### 一、课程学习重点 1. **专业核心课** - **C语言程序设计**:掌握指针、结构体、文件操作等进阶内容,建议每周完成2-3个编程练习 - **电路与电子技术**:重点理解模拟电路(如放大电路)、数字电路(逻辑门、触发器) - **计算机网络基础**:学习TCP/IP协议栈、网络分层模型(可结合Packet Tracer模拟器实践) 2. **公共基础课** - 高数:强化微积分在信号处理中的应用(如傅里叶变换基础) - 大学物理:关注电磁学部分,为传感器原理打基础 --- ### 二、技能提升路径 1. **硬件开发能力** - 学习Arduino/STM32开发板(淘宝购买基础套件约¥100-200) - 掌握常用传感器(温湿度、红外、陀螺仪)的驱动方法 - 推荐平台:立创EDA(学习绘制简单电路图) 2. **软件开发能力** - 巩固Linux基础命令(建议在虚拟机安装Ubuntu系统) - 接触Python爬虫(用Requests库抓取物联网设备数据) - 尝试Android Studio开发简易APP控制LED灯 --- ### 三、实践项目推荐 | 项目类型 | 示例项目 | 所需技能 | |---------|---------|---------| | 环境监测 | 基于ESP8266的温湿度监控系统 | 传感器使用、WiFi通信 | | 智能家居 | 手机APP控制窗帘开关 | Android开发、电机控制 | | 数据可视化 | 用Python+Matplotlib展示传感器数据 | 数据处理、图表绘制 | --- ### 四、竞与认证 - **3-4月**:准备蓝桥杯单片机设计与开发组(考察C语言与硬件编程) - **5-6月**:参与全国大学生物联网设计竞(校阶段) - **认证备考**:华为HCIA-IoT认证(学习物联网体系架构) --- ### 五、学习资源推荐 1. **MOOC平台** - 中国大学MOOC《物联网工程导论》(北京邮电大学) - Coursera《Embedded Systems Essentials》(英) 2. **工具软件** - 电路仿真:Proteus 8 Professional - 代码管理:GitHub Desktop(建立第一个代码仓库) 3. **行业资讯** - 关注CSDN「物联网」专栏、电子工程世界公众号 --- ### 六、时间分配建议 - **每日安排**:1小时编程+30分钟硬件调试+碎片时间阅读技术文档 - **周末计划**:完成一个小型项目原型(如智能台灯) - **期末目标**:独立完成包含硬件+云平台+手机端的完整物联系统 --- ### 七、职业准备建议 1. 联系专业课教师加入实验室(如智能车、机器人方向) 2. 暑期争取物联网相关企业实习(岗位如测试工程师助理) 3. 建立个人技术博客(推荐Hexo+GitHub Pages) > **注意事项**:避免过早陷入复杂框架学习,重点培养「硬件调试能力」与「系统思维」,遇到技术卡点时善用Stack Overflow+CSDN问答社区。建议每两周整理学习笔记,形成自己的知识图谱。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值