☰
GESP认证C++编程真题解析 | B4066 [GESP202412 三级] 数字替换
2026/10/7 2:56:51 网站建设 项目流程

​欢迎大家订阅我的专栏:算法题解:C++与Python实现!
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!

专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。

适合人群:

  • 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
  • 希望系统学习C++/Python编程的初学者
  • 想要提升算法与编程能力的编程爱好者

附上汇总帖:GESP认证C++编程真题解析 | 汇总


【题目来源】

洛谷:B4066 [GESP202412 三级] 数字替换 - 洛谷 (luogu.com.cn)

【题目描述】

小杨有一个包含n nn个数字的序列A AA,即A = [ a 1 , a 2 , . . . , a n ] A=[a_1,a_2,...,a_n]A=[a1​,a2​,...,an​],他想将其中大于k kk的数字都替换为序列的最大值,将其中小于k kk的数字都替换为序列的最小值,请你帮他计算出替换后的序列。

【输入】

第一行包含两个正整数n , k n,kn,k,含义如题面所示。

第二行包含n nn个数字,代表序列A AA。

【输出】

输出n nn个整数,代表替换后的结果。

【输入样例】

5 0 -2 -1 0 1 2

【输出样例】

-2 -2 0 2 2

【算法标签】

《洛谷 B4066 数字替换》 #GESP# #2024#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;constintN=100005;// 定义常量N,表示数组的最大大小intn,k;// n: 数组长度,k: 参考值inta[N];// a: 存储数组元素intminn=1e9,maxn=-1e9;// minn: 数组中的最小值,maxn: 数组中的最大值intmain(){cin>>n>>k;// 输入数组长度n和参考值k// 遍历数组,输入元素并计算最小值和最大值for(inti=1;i<=n;i++){cin>>a[i];minn=min(minn,a[i]);// 更新最小值maxn=max(maxn,a[i]);// 更新最大值}// 遍历数组,根据参考值k更新数组元素for(inti=1;i<=n;i++){if(a[i]>k){a[i]=maxn;// 如果元素大于k,将其替换为最大值}elseif(a[i]<k){a[i]=minn;// 如果元素小于k,将其替换为最小值}}// 输出更新后的数组for(inti=1;i<=n;i++){cout<<a[i]<<" ";}cout<<endl;return0;}

【运行结果】

5 0 -2 -1 0 1 2 -2 -2 0 2 2

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询