news 2026/9/2 22:02:45

2018年山东CSP-X复赛真题解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2018年山东CSP-X复赛真题解析

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

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

适合人群:

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

附上汇总帖:历年CSP-X复赛真题解析 | 汇总


B4072 小明的照片

【题目来源】

洛谷:B4072 [CSP-X 2018] 小明的照片 - 洛谷

【题目描述】

国庆假期,小明和爸爸妈妈一起外出旅游,沿途拍摄了很多美丽的风景照片,在返程的前一天晚上,他整理了一下所有的照片:手机里有x xx张,平板电脑里有y yy张,单反相机里有z zz张。小明计划开学后拿出n nn张照片与同学们分享,请问他至少还需要再拍摄多少张照片?

【输入】

一行,四个正整数n , x , y , z n,x,y,zn,x,y,z,中间用空格隔开。

输入的数据保证现有的照片总数不超过n nn

【输出】

一行,只有一个整数,表示还需要再拍摄的照片数量。

【输入样例】

30 8 2 10

【输出样例】

10

【算法标签】

《洛谷 B4072 小明的照片》 #CSP-X小学组# #2018# #山东#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;intn;// 总数intx;// 第一类数量inty;// 第二类数量intz;// 第三类数量intmain(){// 输入总数和三类数量cin>>n>>x>>y>>z;/** * 计算并输出剩余数量: * 总数减去三类已知数量 * 用于计算未被分类的数量 */cout<<n-x-y-z<<endl;return0;// 程序正常结束}

【运行结果】

30 8 2 10 10

B4073 快递费用

【题目来源】

洛谷:B4073 [CSP-X 2018] 快递费用 - 洛谷

【题目描述】

某快递公司按邮寄物品的重量收费,收费标准如下:

重量在500 500500克以内的,一律20 2020元;

超过500 500500克的,超重的部分按每500 500500克加收费用。超出的重量不足500 500500克的,按500 500500克计算。例如:1020 10201020克,超重520 520520克,需加收两份费用。

根据目的地的不同,加收的费用是不一样的。快递公司划分了五个目的地区域:

  • 区域1 11:每超重500 500500克加收4 44元;
  • 区域2 22:每超重500 500500克加收6 66元;
  • 区域3 33:每超重500 500500克加收9 99元;
  • 区域4 44:每超重500 500500克加收10 1010元;
  • 区域5 55:每超重500 500500克加收17 1717元。

给出物品的重量w ww和目的地区域编号n nn,请你计算快递费用。

【输入】

一行,两个正整数w , n w,nw,n

【输出】

一行,一个整数,表示快递费用。

【输入样例】

1020 3

【输出样例】

38

【算法标签】

《洛谷 B4073 快递费用》 #CSP-X小学组# #2018# #山东#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;intw;// 输入的总重量(单位:克)inta[6]={0,4,6,9,10,17};// 不同包裹类型对应的价格数组intn;// 包裹类型(1-5)intans;// 最终计算的总价格intt;// 计算所需的包裹数量intmain(){// 输入总重量和包裹类型cin>>w>>n;// 初始化基础价格为20元ans=20;// 扣除首重500克w-=500;// 计算超出部分所需的500克单位数量t=w/500;// 如果有余数,需要多算一个单位if(w%500){t++;}// 计算总价格:基础价格 + 超重部分价格ans+=t*a[n];// 输出最终价格cout<<ans;return0;}

【运行结果】

1020 3 38

B4074 统计成绩

【题目来源】

洛谷:[B4074 CSP-X 2018] 统计成绩 - 洛谷

【题目描述】

考试结束之后,每位同学都依据成绩获得相应的等级:

  • 优秀:90 ∼ 100 90\sim 10090100
  • 良好:80 ∼ 89 80\sim 898089
  • 及格:60 ∼ 79 60\sim796079
  • 不及格:60 6060以下。

现在,需要统计一下获得每个等级的人数分别是多少。

【输入】

第一行,一个正整数n nn,表示总人数。

第二行,n nn个由空格隔开的整数,表示每个同学的成绩(0 ∼ 100 0\sim1000100)。

【输出】

共四行,每行一个整数,依次表示获得优秀、良好、及格、不及格等级的人数。

【输入样例】

10 93 33 86 81 47 82 84 92 73 94

【输出样例】

3 4 1 2

【算法标签】

《洛谷 B4074 统计成绩》 #CSP-X小学组# #2018# #山东#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;intn;// 学生人数inta,b,c,d;// 四个等级的人数统计// a: 90分及以上// b: 80-89分// c: 60-79分// d: 60分以下intmain(){// 输入学生人数cin>>n;// 遍历每个学生的成绩for(inti=1;i<=n;i++){intx;// 学生成绩cin>>x;// 根据成绩等级进行统计if(x>=90)// 90分及以上{a++;}elseif(x>=80)// 80-89分{b++;}elseif(x>=60)// 60-79分{c++;}else// 60分以下{d++;}}// 输出各等级人数,每个等级一行cout<<a<<endl;// 90分及以上人数cout<<b<<endl;// 80-89分人数cout<<c<<endl;// 60-79分人数cout<<d<<endl;// 60分以下人数return0;}

【运行结果】

10 93 33 86 81 47 82 84 92 73 94 3 4 1 2

B4075 11 的倍数

【题目来源】

洛谷:[B4075 CSP-X 2018] 11 的倍数 - 洛谷

【题目描述】

如何判断一个正整数x xx是不是3 33的倍数?

可以计算x ÷ 3 x\div3x÷3所得的余数,如果余数等于0 00,那么x xx3 33的倍数。

还可以用下面的方法来判断:

x xx的个位数字、十位数字、百位数字……相加,如果所得的和是3 33的倍数,那么x xx就是3 33的倍数。例如:x = 8511 x = 8511x=85118 + 5 + 1 + 1 = 15 8+5+1+1=158+5+1+1=1515 15153 33的倍数,那么8511 85118511就是3 33的倍数。
接下来你的任务是,判断x xx是不是11 1111的倍数。

有一个与判断是不是3 33的倍数类似的方法供你参考:

  • x xx的个位、百位、万位……上的数字求和,得s 1 s_1s1
  • x xx的十位、千位、十万位……上的数字求和,得s 2 s_2s2

如果s 1 ÷ 11 s_1\div11s1÷11所得的余数= s 2 ÷ 11 = s_2\div11=s2÷11所得的余数,那么x xx就是11 1111的倍数。
例如:x = 3162819 x=3162819x=3162819s 1 = 3 + 6 + 8 + 9 = 26 s_1 = 3+6+8+9 = 26s1=3+6+8+9=26s 2 = 1 + 2 + 1 = 4 s_2 = 1+2+1 = 4s2=1+2+1=4。因为26 ÷ 11 26\div1126÷114 444 ÷ 11 4\div114÷11也余4 44,所以3162819 3162819316281911 1111的倍数。

【输入】

第一行,一个正整数n nn

以下n nn行,每行一个正整数x i x_ixi,需要你判断x i x_ixi是不是11 1111的倍数。

【输出】

n nn行,每行输出一个Yes \texttt{Yes}YesNo \texttt{No}No,表示x i x_ixi是不是11 1111的倍数。

【输入样例】

3 2035 62202 335

【输出样例】

Yes No No

【算法标签】

《洛谷 B4075 11的倍数》 #CSP-X小学组# #2018# #山东#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;intn;// 存储测试用例的数量string s;// 存储输入的数字字符串// 检查字符串t是否满足"奇偶位数字和模11同余"的条件boolcheck(string t){ints1=0,s2=0;// s1: 偶数位(索引为0,2,4,...)的数字和, s2: 奇数位(索引为1,3,5,...)的数字和// 遍历字符串t的每个字符for(inti=0;i<t.size();i++){if(i%2==0)// 如果是偶数位s1+=t[i]-'0';// 将该位的数字加到s1else// 如果是奇数位s2+=t[i]-'0';// 将该位的数字加到s2}// 检查s1和s2对11取模的结果是否相同returns1%11==s2%11;}intmain(){cin>>n;// 输入测试用例的数量// 处理每个测试用例while(n--){cin>>s;// 输入一个数字字符串// 检查字符串s是否满足条件if(check(s))cout<<"Yes"<<endl;// 满足条件则输出"Yes"elsecout<<"No"<<endl;// 不满足条件则输出"No"}return0;}

【运行结果】

3 2035 Yes 62202 No 335 No
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/29 13:18:04

基于深度学习的音乐推荐方法研究系统(源码+文档)

项目简介基于深度学习的音乐推荐方法研究系统实现了以下功能&#xff1a;&#xff08;1&#xff09;用户的登录过程实现&#xff0c;要实现为用户的个性化推荐&#xff0c;需要以登录的方式来方便用户使用该系统&#xff0c;通过系统的登录来实现搜索和推荐的功能实现&#xff…

作者头像 李华
网站建设 2026/8/25 6:34:02

2026年Java岗最全面试攻略,面试必刷,跳槽大厂神器

现在 Java 面试可以说是老生常谈的一个问题了&#xff0c;确实也是这么回事。面试题、面试宝典、面试手册......各种 Java 面试题一搜一大把&#xff0c;根本看不完&#xff0c;也看不过来&#xff0c; 而且每份面试资料也都觉得 Nice&#xff0c;然后就开启了收藏之路。Java 开…

作者头像 李华
网站建设 2026/9/1 1:12:55

192S06M0132B控制系统模块

192S06M0132B 控制系统模块特点核心控制单元&#xff1a;承担数据处理与指令执行&#xff0c;保证系统高效响应。高可靠性设计&#xff1a;工业级元件&#xff0c;耐高温、防尘、防振动&#xff0c;适合连续运行。灵活扩展&#xff1a;支持与其他模块无缝组合&#xff0c;便于系…

作者头像 李华
网站建设 2026/8/25 4:36:50

VME-HDD-4G单插槽软盘/硬盘模块

VME-HDD-4G 单插槽软盘/硬盘模块特点概览&#xff1a;单插槽设计&#xff1a;紧凑结构&#xff0c;便于安装在标准 VME 机箱中。高容量存储&#xff1a;4GB 存储空间&#xff0c;满足工业数据存储和日志记录需求。兼容软硬盘&#xff1a;可支持传统软盘格式及硬盘存储&#xff…

作者头像 李华
网站建设 2026/8/29 4:29:12

告别论文双重雷区!宏智树 AI 教你降重降 AIGC 一步到位

最近后台的求助留言快堆成山了&#xff1a;“查重率降到 10%&#xff0c;却被 AIGC 检测标红 80%”“换了一堆同义词&#xff0c;论文读起来像天书”。作为深耕论文写作科普的教育博主&#xff0c;我太懂大家的焦虑了 —— 现在高校学术检测全面升级&#xff0c;论文要过的不仅…

作者头像 李华