学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程。
高渐离:史书上会记载,秦王登基的那一天,有个叫高渐离的人袭击了他。秦始皇:你错了,史书是由我来写的。
——<秦颂>
目录
高渐离:史书上会记载,秦王登基的那一天,有个叫高渐离的人袭击了他。秦始皇:你错了,史书是由我来写的。
一、什么是蓝桥杯?
蓝桥杯全国软件和信息技术专业人才大赛,是由工业和信息化部人才交流中心举办的全国性IT学科赛事。全国1200余所高校参赛,累计参赛人数超过40万人。蓝桥杯大赛连续两年被列入中国高等教育学会发布的“全国普通高校学科竞赛排行榜”,是高校教育教学改革和创新人才培养的重要竞赛项目。对大学生综合评测,奖学金评定,升学考研都有一定助益。
蓝桥杯大赛共包括三个竞赛组别,个人赛-软件类,个人赛-电子类,以及视觉艺术大赛。其中个人赛-软件类的比赛科目包括C/C++程序设计、Java软件开发、Python程序设计。
二、C/C++选手备赛核心!
如果你是C/C++的选手,那我劝你一定要认真学好所有的基础算法。C和C++都是非常适合用来写算法的语言,所以这个组别的选手大多都是有一定的实力的,如果你想来混可能被吃的渣都不剩。当然其他两组选手也非常多,所以也需要认真去复习,先看看我归纳的学习路线图
作为博主的我也是第一次参加蓝桥杯,目前正积极备赛,希望能在这次比赛中和大家一起取得一个好的成绩,💪
欢迎私信讨论ℹℹℹ
单词分析
难度: 简单 标签: 字符串, 暴力, 2020, 省赛
题目描述
小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组 成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。
现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这 个字母出现的次数。
输入描述
输入一行包含一个单词,单词只由小写英文字母组成。
对于所有的评测用例,输入的单词长度不超过 1000。
输出描述
输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪 个。如果有多个字母出现的次数相等,输出字典序最小的那个。
第二行包含一个整数,表示出现得最多的那个字母在单词中出现的次数。
输入输出样例
示例 1
输入
lanqiao
输出
a
2
示例 2
输入
longlonglongistoolong
输出
o
6
运行限制
- 最大运行时间:1s
- 最大运行内存: 256M
#include <iostream>
using namespace std;
int main()
{
string str;
char maxa;
int count=1,max=0;
cin >> str;
for(int j=0;j<str.length();++j){
for(int k=j+1;k<str.length();++k){
if(str[j]==str[k]){
count++;
}
}
if(count>max){
max=count;
maxa=str[j];
}
count=1;
}
cout << maxa << endl << max;
return 0;
}
成绩统计
难度: 简单 标签: 数学, 暴力, 2020, 省赛
题目描述
小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。
如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。
请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整 数。
输入描述
输入的第一行包含一个整数 n(1≤n≤104)n (1≤n≤104),表示考试人数。
接下来 �n 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。
输出描述
输出两行,每行一个百分数,分别表示及格率和优秀率。百分号前的部分 四舍五入保留整数。
输入输出样例
示例
输入
7
80
92
56
74
88
100
0
输出
71%
43%
运行限制
- 最大运行时间:1s
- 最大运行内存: 256M
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,grade,count1=0,count2=0;
cin >> n;
for(int i=1;i<=n;i++){
cin >> grade;
if(grade>=60){
count1++;
}
if(grade>=85){
count2++;
}
}
printf("%.0lf",((count1*1.0)/n)*100);
cout << '%' << endl;
printf("%.0lf",((count2*1.0)/n)*100);
cout << '%';
return 0;
}
门牌制作
难度: 简单 标签: 填空题, 2020, 省赛
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小蓝要为一条街的住户制作门牌号。
这条街一共有 20202020 位住户,门牌号从 11 到 20202020 编号。
小蓝制作门牌的方法是先制作 00 到 99 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、0、1、71、0、1、7,即需要 11 个字符 00,22 个字符 11,11 个字符 77。
请问要制作所有的 11 到 20202020 号门牌,总共需要多少个字符 22?
运行限制
- 最大运行时间:1s
- 最大运行内存: 128M
#include<bits/stdc++.h>
using namespace std;
int main(){
int count=0;
for(int i=1;i<=2020;i++){
int j=i;
while(j){
if(j%10==2){
count++;
}
j=j/10;
}
}
cout << count;
return 0;
}
卡片
难度: 简单 标签: 普通填空, 省赛, 2021
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小蓝有很多数字卡片,每张卡片上都是数字 00 到 99。
小蓝准备用这些卡片来拼一些数,他想从 11 开始拼出正整数,每拼一个,就保存起来,卡片就不能用来拼其它数了。
小蓝想知道自己能从 11 拼到多少。
例如,当小蓝有 3030 张卡片,其中 00 到 99 各 33 张,则小蓝可以拼出 11 到 1010,
但是拼 1111 时卡片 11 已经只有一张了,不够拼出 1111。
现在小蓝手里有 00 到 99 的卡片各 20212021 张,共 2021020210 张,请问小蓝可以从 11 拼到多少?
提示:建议使用计算机编程解决问题。
运行限制
- 最大运行时间:1s
- 最大运行内存: 128M
#include<bits/stdc++.h>
using namespace std;
int main(){
int count=0;
long long int i;
for(i=0;;i++){
int j=i;
while(j){
if(j%10==1){
count++;
if(count==2021){
cout << i << endl;
break;
}
}
j=j/10;
}
}
//cout << "3181";
}
成绩分析
难度: 简单 标签: 模拟, 暴力, 2020, 省赛
题目描述
小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。
请计算这次考试的最高分、最低分和平均分。
输入描述
输入的第一行包含一个整数 � (1≤�≤104)n (1≤n≤104),表示考试人数。
接下来 �n 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。
输出描述
输出三行。
第一行包含一个整数,表示最高分。
第二行包含一个整数,表示最低分。
第三行包含一个实数,四舍五入保留正好两位小数,表示平均分。
输入输出样例
示例
输入
7
80
92
56
74
88
99
10
输出
99
10
71.29
运行限制
- 最大运行时间:1s
- 最大运行内存: 256M
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
int nums[10010],sum=0;
cin >> n;
for(int i=0;i<n;i++){
cin >> nums[i];
sum=sum+nums[i];
}
sort(nums,nums+n);
cout << nums[n-1] << endl << nums[0] << endl;
double average=sum*1.0/n;
printf("%.2lf",average);
}
空间
难度: 简单 标签: 普通填空, 省赛, 2021
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小蓝准备用 256��256MB 的内存空间开一个数组,数组的每个元素都是 3232 位 二进制整数,如果不考虑程序占用的空间和维护内存需要的辅助空间,请问 256��256MB 的空间可以存储多少个 3232 位二进制整数?
运行限制
- 最大运行时间:1s
- 最大运行内存: 128M
#include<bits/stdc++.h>
using namespace std;
int main(){
long long int n=256*1024*1024/4;
cout << n;
}
时间显示
难度: 简单 标签: 2021, 省赛
题目描述
小蓝要和朋友合作开发一个时间显示的网站。
在服务器上,朋友已经获取了当前的时间,用一个整数表示,值为从 19701970 年 11 月 11 日 00:00:0000:00:00 到当前时刻经过的毫秒数。
现在,小蓝要在客户端显示出这个时间。小蓝不用显示出年月日,只需要显示出时分秒即可,毫秒也不用显示,直接舍去即可。
给定一个用整数表示的时间,请将这个时间对应的时分秒输出。
输入描述
输入一行包含一个整数,表示时间。
输出描述
输出时分秒表示的当前时间,格式形如 HH:MM:SS
,其中 HH
表示时,值为 00 到 2323,MM
表示分,值为 00 到 5959,SS
表示秒,值为 00 到 5959。时、分、秒 不足两位时补前导 00。
输入输出样例
示例 1
输入
46800999
输出
13:00:00
示例 2
输入
1618708103123
输出
01:08:23
评测用例规模与约定
对于所有评测用例,给定的时间为不超过 10181018 的正整数。
运行限制
- 最大运行时间:1s
- 最大运行内存: 512M
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long int h;
cin >> h;
int hh,mm,ss;
h = h%(24*60*60*1000);//s
// cout << h << endl;
hh = h/(60*60*1000)%24;
// cout << hh << endl;
mm = h/(60*1000)%60;
// cout << mm << endl;
ss = h/(1000)%60;
// cout << ss << endl;
printf("%02d:%02d:%02d\n",hh,mm,ss);
return 0;
}
九进制转十进制
难度: 简单 标签: 2022, 省赛
问题描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
九进制正整数 (2022)9(2022)9 转换成十进制等于多少?
运行限制
- 最大运行时间:1s
- 最大运行内存: 512M
#include <bits/stdc++.h>
using namespace std;
int main()
{
string str="2022";
int n=0;
for(int i=0;i<str.length();++i)
n=n*9+str[i]-'0';
cout << n ;
return 0;
}
好了,这篇文章到这就结束了,就是一个简简单单的题解,希望可以帮助到大家!!!
2023年第二十八期,希望得到大家的喜欢🙇
也是新的系列,将会持续更新,🙇
希望大家有好的意见或者建议,欢迎私信
以上就是本篇文章的全部内容了
~ 关注我,点赞博文~ 每天带你涨知识!
1.看到这里了就 [点赞+好评+收藏] 三连 支持下吧,你的「点赞,好评,收藏」是我创作的动力。
2.关注我 ~ 每天带你学习 :各种前端插件、3D炫酷效果、图片展示、文字效果、以及整站模板 、HTML模板 、C++、数据结构、Python程序设计、Java程序设计、爬虫等! 「在这里有好多 开发者,一起探讨 前端 开发 知识,互相学习」!
3.以上内容技术相关问题可以相互学习,可 关 注 ↓公 Z 号 获取更多源码 !
获取源码?私信?关注?点赞?收藏?
👍+✏️+⭐️+🙇
有需要源码的小伙伴可以 关注下方微信公众号 " Enovo开发工厂 "🙇