2026年3月GESP真题及题解(C++一级):交朋友

2026年3月GESP真题及题解(C++一级):交朋友

2026年3月GESP真题及题解(C++一级):交朋友

在这里插入图片描述

题目描述

班上有四个小朋友,身高为 H 1 , H 2 , H 3 , H 4 H_1, H_2, H_3, H_4 H1​,H2​,H3​,H4​,其中 Alice 的身高为 H 1 H_1 H1​。
Alice 想和她身高最接近的人交朋友。如果有多人符合,则 Alice 想和其中最矮的人做朋友。

输入格式

共 4 行,第 1 行包含一个整数 H 1 H_1 H1​,表示班上小朋友的身高。

输出格式

输出 1 行,一个整数 h ,表示 Alice 想交的朋友的身高。

样例

输入:

150 165 135 133 

输出:

135 

数据范围

  • 100 ≤ H i ≤ 199 100 \leq H_i \leq 199 100≤Hi​≤199
  • H i H_i Hi​ 互不相同

题目分析

本题要求找出与 Alice(身高为 H 1 H_1 H1​)身高最接近的小朋友。如果有多个小朋友与 Alice 的身高差相同,则选择其中最矮的那位。输入包含四个互不相同的整数(身高范围 100~199),输出为 Alice 想交的朋友的身高。

解题的关键在于:

  1. 分别计算 H 2 , H 3 , H 4 H_2, H_3, H_4 H2​,H3​,H4​ 与 H 1 H_1 H1​ 的绝对差值。
  2. 比较三个差值,记录当前最小差值及其对应的身高。
  3. 如果遇到相同差值,则比较身高,保留较矮的。
  4. 最终输出记录的身高。

思路分析1(一级考纲思路分析)

  • 首先读入四个身高值,分别存入变量 h1, h2, h3, h4
  • 初始化最小差值 minc 为 (h1) 与 (h2) 的差值绝对值,候选答案 ansh2
  • 依次处理 h3h4
    • 计算当前身高与 h1 的差值绝对值 c
    • 如果 c 小于 minc,则更新 mincans
    • 如果 c 等于 minc,则比较 ans 与当前身高,取较小的更新 ans
  • 最后输出 ans

思路总结:通过逐个比较保证了“最接近”优先,“更矮”次之的规则。

AC代码1(一级考纲思路代码)

#include<bits/stdc++.h>// 万能头文件,包含常用的标准库usingnamespace std;int h1, h2, h3, h4;// 定义四个整数变量,存储四个小朋友的身高intmain(){// 读入四个身高值 cin >> h1 >> h2 >> h3 >> h4;// 计算 h1 与 h2 的绝对差值int c12 = h1 - h2;if(c12 <0) c12 =-c12;// 取绝对值// 计算 h1 与 h3 的绝对差值int c13 = h1 - h3;if(c13 <0) c13 =-c13;// 计算 h1 与 h4 的绝对差值int c14 = h1 - h4;if(c14 <0) c14 =-c14;// 初始化最小差值和答案(先假设 h2 是最佳人选)int minc = c12;int ans = h2;// 处理 h3:比较其差值与当前最小差值if(c13 < minc){ minc = c13;// 发现更小的差值,更新 ans = h3;}elseif(c13 == minc){// 差值相等,选择较矮的那个if(h3 < ans){ ans = h3;}}// 处理 h4:与当前最小差值比较if(c14 < minc){ minc = c14;// 差值更小,更新 ans = h4;}elseif(c14 == minc){// 差值相等,选较矮的if(h4 < ans){ ans = h4;}}// 输出最终答案 cout << ans << endl;return0;}

思路分析2(使用数组和abs函数思路)

算法思路:

  1. 读入四个身高,分别存入数组 h[1] 到 h[4],其中 h[1] 是 Alice 的身高。
  2. 初始化最小差值 minc 为一个较大的数(例如 100,因为身高范围 100~199,最大差不超过 99),并假设答案为 h[2](即先预设第二个小朋友为朋友)。
  3. 从 i = 2 到 4 遍历其余三位小朋友:
    • 计算当前小朋友身高与 Alice 身高的绝对差 c = |h[i] - h[1]|。
    • 如果 (c < minc),则更新最小差值和答案。
    • 如果 (c == minc) 且当前小朋友身高比已记录的答案更矮,则更新答案为当前身高。
  4. 输出最终答案。

由于题目保证身高互不相同,因此差值相等时两人身高必然不同,直接比较身高即可。

AC代码2(使用数组和abs函数代码)

#include<bits/stdc++.h>usingnamespace std;int h[5];// 用于存储四个小朋友的身高,下标 1~4 使用intmain(){// 输入四个身高for(int i =1; i <=4; i++){ cin >> h[i];}int minc =100;// 初始化最小差值,100 大于可能的最大差值 99int ans = h[2];// 先假设第二个小朋友是朋友(后续会根据条件更新)// 从第 2 个小朋友开始遍历到第 4 个(下标 2,3,4)for(int i =2; i <=4; i++){int c =abs(h[i]- h[1]);// 计算当前小朋友与 Alice 的身高差if(c < minc){// 发现更小的差值 minc = c; ans = h[i];}elseif(c == minc && h[i]< ans){// 差值相同且当前更矮 ans = h[i];}} cout << ans;// 输出最终选择的朋友身高return0;}

功能分析

  • 关键点:先比较绝对差,差值小的优先;差值相等时选更矮的。由于身高互异,不会出现差值相等且身高也相等的情况,因此逻辑无歧义。
  • 边界情况:身高范围 100~199,最大差为 99,初始 minc = 100 确保第一次比较一定会被更新。如果所有小朋友与 Alice 的差都大于 100,则可能出错,但此情况不存在(因为最大差为 99)。
  • 时间复杂度:仅遍历 3 个元素,常数时间,效率极高。
  • 空间复杂度:使用固定大小的数组,空间常数。
各种学习资料,助力大家一站式学习和提升!!!
#include<bits/stdc++.h>usingnamespace std;intmain(){ cout<<"########## 一站式掌握信奥赛知识! ##########"; cout<<"############# 冲刺信奥赛拿奖! #############"; cout<<"###### 课程购买后永久学习,不受限制! ######";return0;}

【秘籍汇总】(完整csp信奥赛C++学习资料):

1、csp/信奥赛C++,完整信奥赛系列课程(永久学习):

https://edu.ZEEKLOG.net/lecturer/7901 点击跳转

在这里插入图片描述
2、CSP信奥赛C++竞赛拿奖视频课:

https://edu.ZEEKLOG.net/course/detail/40437 点击跳转

在这里插入图片描述
3、csp信奥赛高频考点知识详解及案例实践:

CSP信奥赛C++动态规划:
https://blog.ZEEKLOG.net/weixin_66461496/category_13096895.html点击跳转

CSP信奥赛C++标准模板库STL:
https://blog.ZEEKLOG.net/weixin_66461496/category_13108077.html 点击跳转

信奥赛C++提高组csp-s知识详解及案例实践:
https://blog.ZEEKLOG.net/weixin_66461496/category_13113932.html 点击跳转

4、csp信奥赛冲刺一等奖有效刷题题解:

CSP信奥赛C++初赛及复赛高频考点真题解析(持续更新):https://blog.ZEEKLOG.net/weixin_66461496/category_12808781.html 点击跳转

信奥赛C++提高组csp-s初赛&复赛真题题解(持续更新):
https://blog.ZEEKLOG.net/weixin_66461496/category_13125089.html 点击跳转

5、GESP C++考级真题题解:
在这里插入图片描述

GESP(C++ 一级+二级+三级)真题题解(持续更新):https://blog.ZEEKLOG.net/weixin_66461496/category_12858102.html 点击跳转

在这里插入图片描述

GESP(C++ 四级+五级+六级)真题题解(持续更新):https://blog.ZEEKLOG.net/weixin_66461496/category_12869848.html 点击跳转

在这里插入图片描述


GESP(C++ 七级+八级)真题题解(持续更新):
https://blog.ZEEKLOG.net/weixin_66461496/category_13117178.html 点击跳转

· 文末祝福 ·

#include<bits/stdc++.h>usingnamespace std;intmain(){ cout<<"跟着王老师一起学习信奥赛C++"; cout<<" 成就更好的自己! "; cout<<" csp信奥赛一等奖属于你! ";return0;}
在这里插入图片描述

Read more

全网最全!Python、PyTorch、CUDA 与显卡版本对应关系速查表

全网最全!Python、PyTorch、CUDA 与显卡版本对应关系速查表

摘要:搞深度学习,最痛苦的不是写代码,而是配环境! “为什么我的 PyTorch 认不出显卡?” “新买的显卡装了旧版 CUDA 为什么报错?” 本文提供一份保姆级的版本对应关系速查表,涵盖从 RTX 50 系列 (Blackwell) 到经典老卡的软硬件兼容信息。建议收藏保存,每次配环境前查一下,能省下大量的排坑时间! 🗺️ 核心逻辑图解 在看表格前,先理清显卡架构的代际关系与 CUDA 版本的强绑定逻辑。 📊 一、PyTorch 版本对照表 (推荐) PyTorch 是目前兼容性最好的框架,只要 CUDA 驱动版本 足高,通常都能向下兼容。对于使用最新硬件(如 RTX 50 系)的用户,请务必使用 2.4 或更高版本。 PyTorch 版本Python 版本推荐 CUDA适用显卡建议2.

By Ne0inhk
具身智能中 Wrapper 架构的深度解构与 Python 实战

具身智能中 Wrapper 架构的深度解构与 Python 实战

具身智能中 Wrapper 架构的深度解构与 Python 实战 零、前言 在具身智能(Embodied AI)的开发中,我们常常需要让智能体(Agent)在仿真环境(如 Isaac Sim, Mujoco, PyBullet)中进行千万次的试错训练,然后再部署到真实的物理机器人上。 很多新手在做强化学习(Reinforcement Learning)与机器人的结合时,喜欢直接修改底层仿真环境的源码:改一下奖励函数、加一点传感器噪声、裁剪一下动作输出。随着项目迭代,环境代码变得像“意大利面”一样纠缠不清,不仅难以维护,更无法复用。 今天,我们就来聊聊具身智能架构设计中的一门必修课——Wrapper(包装器)模式。本文将从核心理论到企业级代码落地,带你彻底掌握如何优雅地重构你的机器人训练环境。 一、核心概念:具身智能的“翻译官”——Wrapper 架构 1.1

By Ne0inhk

从零到一:YOLOv8OBB旋转目标检测在RK3588上的C++部署心路历程

从零到一:YOLOv8OBB旋转目标检测在RK3588上的C++部署心路历程 作为一名长期从事边缘计算部署的工程师,我深知将先进的AI模型落地到嵌入式设备上的挑战与乐趣。当第一次接触到YOLOv8OBB旋转目标检测模型时,我就被其在复杂场景中的精准检测能力所吸引。然而,将这样一个前沿模型部署到RK3588平台,并用C++实现高效推理,却是一段充满技术探索和实战考验的旅程。 RK3588作为一款高性能的AIoT芯片,其强大的NPU算力为复杂模型部署提供了硬件基础。但在实际部署过程中,从模型转换、环境配置到代码优化,每个环节都可能遇到意想不到的问题。本文将分享我从零开始,一步步将YOLOv8OBB模型部署到RK3588的完整过程,包括技术选型的思考、环境搭建的细节、模型转换的陷阱,以及最终C++代码的优化实践。 1. 技术选型与环境准备 在开始部署之前,明确技术栈和硬件环境是确保项目顺利推进的基础。我选择的是YOLOv8OBB模型,这是Ultralytics团队针对旋转目标检测推出的专用版本,相比传统的水平框检测,它能更精准地定位旋转物体,特别适合遥感图像、文档检测等场景。 R

By Ne0inhk