历年蓝桥杯省赛B组真题试题
第十一届蓝桥杯真题及答案
第十一届蓝桥杯C++省赛B组真题和题解试题A:门牌制作题目【问题描述】小蓝要为一条街的住户制作门牌号。
这条街一共有2020位住户,门牌号从1到2020编号。
小蓝制作门牌的方法是先制作0到9这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌1017需要依次粘贴字符1、0、1、7,即需要1个字符0,2个字符1,1个字符7。
请问要制作所有的1到2020号门牌,总共需要多少个字符2?【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。
本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
题解答案:624#include <cstdio>#include <algorithm>#include <cstring>#include <string>#include <queue>#include <stack>#include <set>#include <cmath>#include <iostream>using namespace std;const int INF = 1e9;int cnt;void cal(int x){while(x){if(x % 10 == 2) cnt++;x /= 10;}}int main(){for(int i = 1; i <= 2020; i++){ cal(i);}cout << cnt;return 0;}试题B:既约分数题目【问题描述】如果一个分数的分子和分母的最大公约数是1,这个分数称为既约分数。
例如,3/4,5/2,1/8,7/1都是既约分数。
请问,有多少个既约分数,分子和分母都是1到2020之间的整数(包括1和2020)?【答案提交】这是一道结果填空题,你只需要算出结果后提交即可。
本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
蓝桥杯部分题目(含答案)
1、未名湖边的烦恼关键词:递归,蓝桥杯,算法问题描述每年冬天,北大未名湖上都是滑冰的好地方。
北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩。
每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。
现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面。
(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同一种排法)输入格式两个整数,表示m和n输出格式一个整数,表示队伍的排法的方案数。
样例输入3 2样例输出5数据规模和约定m,n∈[0,18]#include "iostream"#include "cstdio"#include "cmath"#include "algorithm"#include "map"using namespace std;int f(int m,int n){if(m<n) return 0;if(n==0) return 1;return f(m,n-1)+f(m-1,n);}int main(){int m,n;scanf("%d%d",&m,&n);int ans=f(m,n);printf("%d\n",ans);return 0;}2.标题:蚂蚁感冒关键词:结构体排序,蓝桥杯【题目描述】长100厘米的细长直杆子上有n只蚂蚁。
它们的头有的朝左,有的朝右。
每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。
当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。
这些蚂蚁中,有1只蚂蚁感冒了。
并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。
请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。
【数据格式】第一行输入一个整数n (1 < n < 50), 表示蚂蚁的总数。
大学生蓝桥杯试题及答案
大学生蓝桥杯试题及答案一、选择题(每题2分,共20分)1. 在计算机科学中,通常用什么来表示一个算法的效率?A. 时间复杂度B. 空间复杂度C. 算法的可读性D. 算法的可维护性答案:A2. 下列哪种数据结构在插入和删除操作时不需要移动其他元素?A. 链表B. 数组C. 栈D. 队列答案:A3. 以下哪个选项是面向对象编程的三个基本特征?A. 封装、继承、多态B. 抽象、封装、继承C. 继承、封装、多态D. 封装、继承、抽象答案:A4. 在HTML中,用于定义最重要的标题的标签是什么?A. <h1>B. <h6>C. <title>D. <header>答案:A5. 在数据库管理系统中,用于从数据库中检索数据的SQL语句是?A. INSERTB. UPDATEC. DELETED. SELECT答案:D6. 在Java中,用于定义一个类的方法的关键字是什么?A. classB. methodC. functionD. public答案:D7. 在C语言中,用于声明一个变量为静态存储的关键字是什么?A. staticB. externC. registerD. auto答案:A8. 在Python中,用于定义一个函数的关键字是什么?A. defB. functionC. methodD. class答案:A9. 在操作系统中,用于管理进程的调度和资源分配的组件是什么?A. 文件系统B. 内存管理C. 进程管理器D. 设备驱动程序答案:C10. 以下哪个协议是用于在互联网上发送电子邮件的?A. HTTPB. FTPC. SMTPD. TCP答案:C二、填空题(每题2分,共20分)1. 在计算机科学中,________是用来衡量算法在最坏情况下执行时间的量度。
答案:时间复杂度2. 在数据结构中,________是一种允许在任意位置插入和删除数据的线性数据结构。
历届蓝桥杯试题及答案
历届蓝桥杯试题及答案蓝桥杯是中国最有影响力的计算机竞赛之一,每年都会吸引众多计算机科学爱好者的参与。
本文将回顾历届蓝桥杯的试题,并给出相应的答案。
通过了解历届试题,可以帮助读者更好地准备参加蓝桥杯竞赛。
(此处省略介绍部分)第一届蓝桥杯试题及答案:试题一:(试题内容)(解答步骤)试题二:(试题内容)(解答步骤)试题三:(试题内容)(解答步骤)......第二届蓝桥杯试题及答案:试题一:(试题内容)(解答步骤)试题二:(试题内容)(解答步骤)试题三:(试题内容)(解答步骤)......随着届数的增加,蓝桥杯的试题逐渐增加了难度和复杂程度。
参赛者需要有扎实的计算机基础知识和编程技能才能应对这些挑战。
以下是蓝桥杯历届试题的一些特点总结:1. 试题内容涵盖广泛:蓝桥杯试题从计算机基础知识到算法设计,从编程练习到系统设计,几乎涵盖了计算机科学的各个领域。
2. 试题形式多样:蓝桥杯试题不仅有传统的选择题和编程题,还有设计题、开放题等形式。
这样的设计旨在考察参赛者的创新能力和综合运用能力。
3. 解答步骤详细:对于编程题和算法设计题,蓝桥杯试题答案中往往会给出详细的解答步骤,包括思路分析、代码实现等。
这对于参赛者来说是很好的学习资料。
通过研究历届蓝桥杯试题和答案,我们可以总结出以下参加蓝桥杯竞赛的一些建议:1. 扎实的基础知识:参赛者应该有扎实的计算机基础知识,包括数据结构、算法、编程语言等方面。
只有基础知识扎实,才能更好地应对复杂的试题。
2. 练习编程技巧:编程技巧是参赛者必备的能力,需要不断进行练习和实践。
可以通过刷题、参加编程比赛等方式来提高编程技巧。
3. 团队合作能力:蓝桥杯竞赛有团队赛和个人赛两种形式,参赛者可以选择适合自己的方式。
无论是个人赛还是团队赛,团队合作能力都是必不可少的。
在团队中合理分工、有效沟通,可以提高比赛的效果。
4. 多方面准备:蓝桥杯试题范围广泛,参赛者应该在各个方面进行准备,包括理论知识、实践能力、应试技巧等。
蓝桥杯试题及答案
蓝桥杯试题及答案一、选择题1. 在Java中,以下哪个关键字用于定义类?A. classB. interfaceC. enumD. struct答案:A2. 下列哪个不是Python的内置数据类型?A. intB. floatC. stringD. list答案:D二、填空题1. 在C语言中,定义一个整型变量的关键字是________。
答案:int2. 在JavaScript中,用于定义函数的关键字是________。
答案:function三、简答题1. 请简述什么是算法的时间复杂度,并给出一个例子。
答案:算法的时间复杂度是指算法执行时间随输入规模增长的变化趋势。
例如,对于一个简单的线性搜索算法,如果数组中有n个元素,最坏情况下需要比较n次,因此其时间复杂度是O(n)。
2. 请解释什么是栈,并给出一个栈的应用场景。
答案:栈是一种后进先出(LIFO)的数据结构,允许在一端进行数据的添加和删除操作。
一个常见的栈的应用场景是函数调用的实现,在编程中,每当调用一个函数,就会将函数的返回地址和局部变量压入栈中,待函数执行完毕后再从栈中弹出。
四、编程题1. 编写一个函数,实现对一个整数数组进行排序。
答案:```javapublic static void sort(int[] array) {for (int i = 0; i < array.length - 1; i++) {for (int j = 0; j < array.length - i - 1; j++) {if (array[j] > array[j + 1]) {int temp = array[j];array[j] = array[j + 1];array[j + 1] = temp;}}}}```2. 编写一个程序,实现计算一个字符串中所有元音字母的数量。
答案:```pythondef count_vowels(s):vowels = "aeiouAEIOU"return sum(1 for char in s if char in vowels)# 示例print(count_vowels("Hello World")) # 输出应该是 3```五、案例分析题1. 描述一个场景,其中使用二叉搜索树(BST)比使用数组更有效,并解释原因。
第十三届蓝桥杯pythonB组真题
第十三届蓝桥杯pythonB组真题1、.从当前页放映演示文稿的组合键是()。
[单选题] *A. Shift+FB. Shift+F(正确答案)C. Shift+F2、46.移动硬盘或优盘连接计算机所使用的接口通常是()。
[单选题] *A.RS-232C接口B.并行接口B(正确答案)D.UBS3、D:读盘控制器的功能是______。
[单选题] *A:指挥、协调计算机各相关硬件工作(正确答案)B:指挥、协调计算机各相关软件工作C:指挥、协调计算机各相关硬件和软件工作4、微软公司的Microsoft Office 属于应用软件中的()。
[单选题] *A.程序库B.软件包C.套装软件(正确答案)D.用户自己开发的软件5、IP 地址块.../ 的子网掩码可写为()。
中[单选题] *A....B....C....(正确答案)D....6、在计算机局域网中,普遍采用的是()进行差错检测控制。
中[单选题] * A.垂直冗余检验B.循环冗余检验(正确答案)C.水平冗余检验D.校验和7、C:SRAM内存条,CD-ROM驱动器,扫描仪D:优盘,内存储器,硬盘下面关于操作系统的叙述中,正确的是______。
[单选题] *A:操作系统是计算机软件系统中的核心软件(正确答案)B:操作系统属于应用软件8、1根据冯.诺依曼原理,准确地说计算机硬件各部件如何动作具体是由()决定的。
[单选题] *A.存储器中的内容B.操作系统C.用户D.CPU 中所执行的指令(正确答案)9、如果子网掩码是...,那么主机... 所在的驻留子网是()。
中[单选题] *A....B....C....(正确答案)D....10、73.以.jpg为扩展名的文件通常是()[单选题] *A.文本文件B.音频信号文件C.图像文件(正确答案)D.视频信号文件11、Internet 使用的协议是()。
易[单选题] *A.IPX/SPXB.NCPC.TCP/IP(正确答案)BIOS12、28.目前广泛使用的Internet,其前身可追溯到()[单选题] *A.ARPANET(正确答案)B.CHINANETC.DECnetD.NOVELL13、16.在Internet.上浏览时,浏览器和Www服务器之间传输网页使用的协议是()。
蓝桥杯试题
2018蓝桥杯C语言b组国赛真题1.标题:换零钞x星球的钞票的面额只有:100元;5元;2元;1元;共4种..小明去x星旅游;他手里只有2张100元的x星币;太不方便;恰好路过x 星银行就去换零钱..小明有点强迫症;他坚持要求200元换出的零钞中2元的张数刚好是1元的张数的10倍;剩下的当然都是5元面额的..银行的工作人员有点为难;你能帮助算出:在满足小明要求的前提下;最少要换给他多少张钞票吗5元;2元;1元面额的必须都有;不能是0注意;需要提交的是一个整数;不要填写任何多余的内容..手算都可以......下面是代码;答案741.include<iostream>ing namespace std;3.int main{4.forint i=1;i<40;i++{5.forint j=1;j<200;j++{6.if5i+210j+1j==2007.cout<<"5"<<i<<"+2"<<10j<<"+1"<<j<<"="<<5i+210j+1j<<"一共"<<i+10j+j<<"张"<<endl;8.}9.}10.return 0;11.}12.13. 2.标题:激光样式14.x星球的盛大节日为增加气氛;用30台机光器一字排开;向太空中打出光柱..15.安装调试的时候才发现;不知什么原因;相邻的两台激光器不能同时打开16.国王很想知道;在目前这种bug存在的情况下;一共能打出多少种激光效果17.显然;如果只有3台机器;一共可以成5种样式;即:18.全都关上sorry; 此时无声胜有声;这也算一种19.开一台;共3种20.开两台;只1种21.30台就不好算了;国王只好请你帮忙了..22.要求提交一个整数;表示30台激光器能形成的样式种数..23.注意;只提交一个整数;不要填写任何多余的内容..思路很简单;暴力搜索;30个灯光从左到右;从左边第一个开始;第一个可以开关;第二个要根据左边的灯光是否开启来取值;以此类推...... 答案21783091.include<iostream>2.include<string.h>ing namespace std;4.int ans = 0;5.int x31;//0代表关;1代表开6.7.void dfs int index{8.if index == 30{9.ans++;10.return;11.}12.if index == 0 || xindex-1 == 0{ //第一个灯光可以取0或1;当前灯光左边要是没开;那当前灯光可以取0和113.forint i=0;i<=1;i++{14.xindex = i;15.dfsindex+1;16.xindex = 0;17.}18.}19.else{ //左边的灯光开了;那当前灯光只能关闭取020.dfsindex+1;21.}22.}23.24.int main{25.memset x;0;31sizeofint;26.dfs0;27.cout<<ans<<endl;28.return0;29.}30. 3.标题:格雷码31.格雷码是以n位的二进制来表示数..32.与普通的二进制表示不同的是;它要求相邻两个数字只能有1个数位不同..33.首尾两个数字也要求只有1位之差..34.有很多算法来生成格雷码..以下是较常见的一种:35.从编码全0开始生成..36.当产生第奇数个数时;只把当前数字最末位改变0变1;1变037.当产生第偶数个数时;先找到最右边的一个1;把它左边的数字改变..38.用这个规则产生的4位格雷码序列如下:39.000040.000141.001142.001043.011044.011145.010146.010047.110048.110149.111150.111051.101052.101153.100154.100055.以下是实现代码;仔细分析其中逻辑;并填写划线部分缺少的代码..答案:a^a&-a<<11.include <stdio.h>2.void show int a;int n{3.int i;4.int msk = 1;5.for i=0; i<n-1; i++ msk = msk << 1;6.for i=0; i<n; i++{7.printf a & msk "1" : "0";8.msk = msk >> 1;9.}10.printf"\n";11.}12.void f int n{13.int i;14.int num = 1;15.for i=0; i<n; i++ num = num<<1;16.int a = 0;17.for i=0; i<num; i++{18.showa;n;19.if i%2==0{20. a = a ^ 1;21.}22.else{23. a = _________________________ ; //填空24.}25.}26.}27.int main{28.f4;29.return0;30.}请注意:只需要填写划线部分缺少的内容;不要抄写已有的代码或符号..4.标题:调手表小明买了块高端大气上档次的电子手表;他正准备调时间呢..在 M78 星云;时间的计量单位和地球上不同;M78 星云的一个小时有 n分钟..大家都知道;手表只有一个按钮可以把当前的数加一..在调分钟的时候;如果当前显示的数是 0 ;那么按一下按钮就会变成 1;再按一次变成 2 ..如果当前的数是 n - 1;按一次后会变成 0 ..作为强迫症患者;小明一定要把手表的时间调对..如果手表上的时间比当前时间多1;则要按 n - 1 次加一按钮才能调回正确时间..小明想;如果手表可以再添加一个按钮;表示把当前的数加 k 该多好啊……他想知道;如果有了这个 +k 按钮;按照最优策略按键;从任意一个分钟数调到另外任意一个分钟数最多要按多少次..注意;按 +k 按钮时;如果加k后数字超过n-1;则会对n取模..比如;n=10; k=6 的时候;假设当前时间是0;连按2次 +k 按钮;则调为2..「输入格式」一行两个整数 n; k ;意义如题..「输出格式」一行一个整数表示:按照最优策略按键;从一个时间调到另一个时间最多要按多少次..「样例输入」5 3「样例输出」2「样例解释」如果时间正确则按0次..否则要按的次数和操作系列之间的关系如下:1:+12:+1; +13:+34:+3; +1「数据范围」对于 30% 的数据 0 < k < n <= 5对于 60% 的数据 0 < k < n <= 100对于 100% 的数据 0 < k < n <= 100000资源约定:峰值内存消耗含虚拟机 < 256MCPU消耗 < 1000ms请严格按要求输出;不要画蛇添足地打印类似:“请您输入...”的多余内容..注意:main函数需要返回0;只使用ANSI C/ANSI C++ 标准;不要调用依赖于编译环境或操作系统的特殊函数..所有依赖的函数必须明确地在源文件中 include <xxx>不能通过工程设置而省略常用头文件..提交程序时;注意选择所期望的语言类型和编译器类型..5.标题:搭积木小明对搭积木非常感兴趣..他的积木都是同样大小的正立方体..在搭积木时;小明选取 m 块积木作为地基;将他们在桌子上一字排开;中间不留空隙;并称其为第0层..随后;小明可以在上面摆放第1层;第2层;……;最多摆放至第n层..摆放积木必须遵循三条规则:规则1:每块积木必须紧挨着放置在某一块积木的正上方;与其下一层的积木对齐;规则2:同一层中的积木必须连续摆放;中间不能留有空隙;规则3:小明不喜欢的位置不能放置积木..其中;小明不喜欢的位置都被标在了图纸上..图纸共有n行;从下至上的每一行分别对应积木的第1层至第n层..每一行都有m个字符;字符可能是‘.’或‘X’;其中‘X’表示这个位置是小明不喜欢的..现在;小明想要知道;共有多少种放置积木的方案..他找到了参加蓝桥杯的你来帮他计算这个答案..注意:地基上什么都不放;也算作是方案之一种..输入格式输入数据的第一行有两个正整数n和m;表示图纸的大小..随后n行;每行有m个字符;用来描述图纸 ..每个字符只可能是‘.’或‘X’..输出格式样例输入12 3..X.X.样例输出14样例说明1成功的摆放有其中O表示放置积木:1..X.X.2..XOX.3O.XOX.4..X.XO样例输入23 3..X.X....样例输出216数据规模约定对于10%的数据;n=1;m<=30;对于40%的数据;n<=10;m<=30;对于100%的数据;n<=100;m<=100..资源约定:峰值内存消耗含虚拟机 < 256MCPU消耗 < 1000ms请严格按要求输出;不要画蛇添足地打印类似:“请您输入...”的多余内容..注意:main函数需要返回0;只使用ANSI C/ANSI C++ 标准;不要调用依赖于编译环境或操作系统的特殊函数..所有依赖的函数必须明确地在源文件中 include <xxx>不能通过工程设置而省略常用头文件..提交程序时;注意选择所期望的语言类型和编译器类型..6.标题:矩阵求和经过重重笔试面试的考验;小明成功进入 Macrohard 公司工作..今天小明的任务是填满这么一张表:表有 n 行 n 列;行和列的编号都从1算起..其中第 i 行第 j 个元素的值是 gcdi; j的平方;gcd 表示最大公约数;以下是这个表的前四行的前四列:1 1 1 11 4 1 41 1 9 11 4 1 16小明突然冒出一个奇怪的想法;他想知道这张表中所有元素的和..由于表过于庞大;他希望借助计算机的力量..「输入格式」一行一个正整数 n 意义见题..「输出格式」一行一个数;表示所有元素的和..由于答案比较大;请输出模 10^9 + 7即:十亿零七后的结果..「样例输入」4「样例输出」48「数据范围」对于 30% 的数据;n <= 1000存在 10% 的数据;n = 10^5对于 60% 的数据;n <= 10^6对于 100% 的数据;n <= 10^7资源约定:峰值内存消耗含虚拟机 < 256MCPU消耗 < 2000ms请严格按要求输出;不要画蛇添足地打印类似:“请您输入...”的多余内容..注意:main函数需要返回0;只使用ANSI C/ANSI C++ 标准;不要调用依赖于编译环境或操作系统的特殊函数..所有依赖的函数必须明确地在源文件中 include <xxx>不能通过工程设置而省略常用头文件..提交程序时;注意选择所期望的语言类型和编译器类型..。
蓝桥杯大学组试题及答案
蓝桥杯大学组试题及答案一、单项选择题(每题5分,共50分)1. 以下哪个选项是Python语言中定义列表的正确方式?A. list = {}B. list = []C. list = ()D. list = []答案:B2. 在HTML中,用于定义最重要的标题的标签是?A. <h1>B. <h2>C. <h3>D. <h4>答案:A3. 以下哪个选项是JavaScript中声明函数的正确方式?A. function myFunction() {}B. var myFunction = function() {}C. var myFunction = function() {}D. Both A and B答案:D4. 在CSS中,以下哪个属性用于设置元素的背景颜色?A. background-colorB. backgroundC. colorD. bgcolor答案:A5. 在SQL中,以下哪个命令用于创建一个新的数据库?A. CREATE TABLEB. CREATE DATABASEC. SELECTD. INSERT INTO答案:B6. 在Java中,以下哪个关键字用于定义一个类?A. classB. functionC. structD. interface答案:A7. 在C++中,以下哪个操作符用于定义引用?A. *B. &C. %D. #答案:B8. 在PHP中,以下哪个函数用于连接数据库?A. connect()B. db_connect()C. mysqli_connect()D. database_connect()答案:C9. 在Unix/Linux系统中,以下哪个命令用于查看当前工作目录?A. pwdB. lsC. cdD. mkdir答案:A10. 在正则表达式中,以下哪个符号用于匹配任何单个字符?A. .B. *C. ^D. $答案:A二、多项选择题(每题10分,共20分)1. 以下哪些选项是JavaScript中常用的数据类型?A. NumberB. StringC. BooleanD. ObjectE. Array答案:ABCDE2. 在Python中,以下哪些选项是合法的变量命名?A. _my_varB. my_varC. 2my_varD. my-varE. myVar答案:ABE三、简答题(每题15分,共30分)1. 请简述在HTML5中,如何使用Canvas元素绘制一个简单的矩形。
2014第五届蓝桥杯JAVA本科B组试题及答案解析
2 2 4
程序应该输出
4
资源约定
峰值内存消耗 含虚拟机< 256M
CPU消耗< 1000ms
请严格按要求输出 不要画蛇添足地打印类似 “请您输入...”的多余内容。
所有代码放在同一个源文件中 调试通过后 拷贝提交该源码。注意 不要使用package语句。不要使用jdk1.7及以上版本的特性。
注意 主类的名字必须是Main否则按无效代码处理。答案:
else
System.out.print(num[i]);
}
System.out.println();
}
public static boolean judge(char[] num) {
boolean[] bool = new boolean[5];
int size_A = 0, size_2 = 0, size_3 = 0, size_4 = 0;
2342A3A4
请通过浏览器提交答案。“A”一定不要用小写字母a也不要用“1”代替。字符间一定不
要留空格。
答案2342A3A4
public class扑克序列{//这题有病 总共就两种情况 题目还给出了
public static int count = 0;
public static void main(String[] args) {
if(arr[index] == true) { //当在圈里时
if(countNum%2 == 0) { //下标为偶数时
arr[index] = false; //该字母退出圈子
leftCount --; //剩余字母数目减一
} countNum++;
}
历年蓝桥杯省赛B组真题试题
for(j = 0 ; j < 4 ; j ++) flag[i][j] = 1;
flag[0][0] = 0; flag[2][3] = 0; }
void Solve() {
int dir[8][2] = { 0,1,0,-1,1,0,-1,0,1,1,1,-1,-1,1,-1,-1}; int book = true; for(int i = 0 ; i < 3 ; i ++) {
int main() {
int i; int a[] = {5,13,6,24,2,8,19,27,6,12,1,17}; int N = 12;
quicksort(a, 0, N -1);
for(i=0; i<N; i++) printf("%d ", a[i]); printf("\n");
return 0; }
num[n]=0;
}
}
}
int main() {
memset(num,0,sizeof(num)); memset(visit,0,sizeof(visit)); dfs(1); cout<<sum; return 0; }
4 / 19
(4) 快速排序
历年蓝桥杯省赛 B 组真题试题
排序在各种场合经常被用到。 快速排序是十分常用的高效率的算法。
if(!visit[i]) {
visit[i] = true; mpt[x][y] = i; dfs(index+1); visit[i] = false; } } } else { dfs(index+1); } } int main() { init(); dfs(0); printf("%d\n",ans); return 0; }
蓝桥杯C语言本科B组预赛试题
2021蓝桥杯C/C++语言本科B组预赛试题〔完整〕1.啤酒和饮料啤酒每罐2.3元,饮料每罐1.9元。
小明买了假设干啤酒和饮料,一共花了82.3元。
我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。
注意:答案是一个整数。
请通过浏览器提交答案。
不要书写任何多余的内容〔例如:写了饮料的数量,添加说明文字等〕。
2.切面条一根高筋拉面,中间切一刀,可以得到2根面条。
如果先对折1次,中间切一刀,可以得到3根面条。
如果连续对折2次,中间切一刀,可以得到5根面条。
那么,连续对折10次,中间切一刀,会得到多少面条呢?答案是个整数,请通过浏览器提交答案。
不要填写任何多余的内容。
3.李白打酒话说大诗人李白,一生好饮。
幸好他从不开车。
一天,他提着酒壶,从家里出来,酒壶中有酒2斗。
他边走边唱:无事街上走,提壶去打酒。
逢店加一倍,遇花喝一斗。
这一路上,他一共遇到店5次,遇到花10次,最后一次遇到的是花,他正好把酒喝光了。
请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。
那么:babaabbabbabbbb就是合理的次序。
像这样的答案一共有多少呢?请你计算出所有可能方案的个数〔包含题目给出的〕。
注意:通过浏览器提交答案。
答案是个整数。
不要书写任何多余的内容。
4.史丰收速算史丰收速算法的革命性奉献是:从高位算起,预测进位。
不需要九九表,彻底颠覆了传统手算!速算的核心根底是:1位数乘以多位数的乘法。
其中,乘以7是最复杂的,就以它为例。
因为,1/7是个循环小数:0.142857...,如果多位数超过142857...,就要进1同理,2/7,3/7, ... 6/7 也都是类似的循环小数,多位数超过n/7,就要进n下面的程序模拟了史丰收速算法中乘以7的运算过程。
乘以7 的个位规律是:偶数乘以2,奇数乘以2再加5,都只取个位。
乘以7 的进位规律是:满142857 (1)满285714 (2)满428571 (3)满571428 (4)满714285 (5)满857142... 进6请分析程序流程,填写划线局部缺少的代码。
蓝桥杯试题及答案
蓝桥杯试题及答案蓝桥杯是面向全国高校计算机专业学生的程序设计竞赛,由工业和信息化部人才交流中心主办,旨在提高学生的编程能力、算法设计能力以及团队合作能力。
以下是一份蓝桥杯试题及答案的示例,供参考。
### 蓝桥杯程序设计竞赛试题及答案#### 题目一:求最大公约数题目描述:给定两个正整数 a 和 b,请编写一个程序计算它们的最大公约数(GCD)。
输入格式:输入包含两个整数 a 和 b,用空格分隔。
输出格式:输出 a 和 b 的最大公约数。
样例输入:```24 36```样例输出:``````答案:```c#include <stdio.h>int gcd(int a, int b) {while (b != 0) {int temp = b;b = a % b;a = temp;}return a;}int main() {int a, b;scanf("%d %d", &a, &b);printf("%d\n", gcd(a, b));return 0;}```#### 题目二:字符串反转题目描述:编写一个程序,实现对输入的字符串进行反转。
输入格式:输入一个字符串。
输出格式:输出反转后的字符串。
样例输入:```Hello World```样例输出:`````ldrow olleH```答案:```c#include <stdio.h>#include <string.h>int main() {char str[1000];scanf("%s", str);int len = strlen(str);for (int i = len - 1; i >= 0; i--) { printf("%c", str[i]);}return 0;}```#### 题目三:二分查找题目描述:在一个已排序的数组中,使用二分查找算法找出一个特定元素的位置。
第十二届蓝桥杯2021年省赛真题(CC++大学B组)
第⼗⼆届蓝桥杯2021年省赛真题(CC++⼤学B组)第⼗⼆届蓝桥杯 2021年省赛真题 (C/C++ ⼤学B组)这次的难度⽐上次⼤,主要表现在数据量⼤。
填空题的后两道⽐较难。
⼤雪莱up主A 空间(进制转换)本题总分:5 分(√)问题描述⼩蓝准备⽤ 256MB 的内存空间开⼀个数组,数组的每个元素都是 32 位⼆进制整数,如果不考虑程序占⽤的空间和维护内存需要的辅助空间,请问256MB 的空间可以存储多少个 32 位⼆进制整数?答案提交这是⼀道结果填空的题,你只需要算出结果后提交即可。
本题的结果为⼀个整数,在提交答案时只填写这个整数,填写多余的内容将⽆法得分。
256 * 1024 * 1024* 8 / 32答案67108864B 卡⽚(模拟)本题总分:5 分(√)问题描述⼩蓝有很多数字卡⽚,每张卡⽚上都是数字 0 到 9。
⼩蓝准备⽤这些卡⽚来拼⼀些数,他想从 1 开始拼出正整数,每拼⼀个,就保存起来,卡⽚就不能⽤来拼其它数了。
⼩蓝想知道⾃⼰能从 1 拼到多少。
例如,当⼩蓝有 30 张卡⽚,其中 0 到 9 各 3 张,则⼩蓝可以拼出 1 到 10,但是拼 11 时卡⽚ 1 已经只有⼀张了,不够拼出 11。
现在⼩蓝⼿⾥有 0 到 9 的卡⽚各 2021 张,共 20210 张,请问⼩蓝可以从 1拼到多少?提⽰:建议使⽤计算机编程解决问题。
答案提交这是⼀道结果填空的题,你只需要算出结果后提交即可。
本题的结果为⼀个整数,在提交答案时只填写这个整数,填写多余的内容将⽆法得分。
思路构造专门的判定函数check。
代码#include<cstdio>#include<iostream>using namespace std;int s[10];bool check(int x){while(x){int t=x%10;x/=10;if(--s[t]<0) return false; //不够了}return true;}int main(){for(int i=0;i<10;i++){s[i]=2021;}for(int i=1;;i++){if(!check(i)) {cout<<i-1<<endl;return 0;}}return 0;}C 直线(枚举)本题总分:10 分问题描述在平⾯直⾓坐标系中,两点可以确定⼀条直线。
蓝桥杯第十届真题B组(2019年)
蓝桥杯第⼗届真题B组(2019年)2019年第⼗届蓝桥杯⼤赛软件类省赛C/C++⼤学B组试题 A:组队本题总分:5分【问题描述】作为篮球队教练,你需要从以下名单中选出 1号位⾄ 5号位各⼀名球员,组成球队的⾸发阵容。
每位球员担任 1号位⾄ 5号位时的评分如下表所⽰。
请你计算⾸发阵容 1号位⾄5号位的评分之和最⼤可能是多少?此题需要注意的是:⼀个⼈可能在很多个位分数都是最⾼的,但是⼀个⼈只能打⼀个位1: 98 2:99 3: 98 4:97 5:98 == 490(认真理解题真的很重要┭┮﹏┭┮)试题 B:年号字串本题总分:5分【问题描述】⼩明⽤字母 A对应数字 1,B对应 2,以此类推,⽤ Z对应 26。
对于 27以上的数字,⼩明⽤两位或更长位的字符串来对应,例如 AA对应27,AB对应28,AZ对应52,LQ对应329。
请问2019对应的字符串是什么?【答案提交】这是⼀道结果填空的题,你只需要算出结果后提交即可。
本题的结果为⼀个⼤写英⽂字符串,在提交答案时只填写这个字符串,注意全部⼤写,填写多余的内容将⽆法得分//答案BYQ#include <bits/stdc++.h>using namespace std;void dfs(int N) {if (N > 26) dfs((N - 1) / 26);//其中(N - 1)为将26进制转换为以0开头的,以前是以1开头满27进putchar('A' + (N - 1) % 26);}int main() {int N;while (cin >> N) {dfs(N); cout << endl;}return0;}试题 C:数列求值本题总分:10分【问题描述】给定数列1,1,1,3,5,9,17,…,从第4项开始,每项都是前3项的和。
求第20190324项的最后4位数字。
【答案提交】这是⼀道结果填空的题,你只需要算出结果后提交即可。
2020年第十一届蓝桥杯国赛B组个人题解
2020年第⼗⼀届蓝桥杯国赛B组个⼈题解⽬录试题 A: 美丽的 2本题总分:5 分【问题描述】⼩蓝特别喜欢 2,今年是公元 2020 年,他特别⾼兴。
他很好奇,在公元 1 年到公元 2020 年(包含)中,有多少个年份的数位中包含数字 2?【我的题解】数位分离,⽔题了。
循环 1 到 2020,写个函数判断⼀下就好了#include <cstdio>#include <cstring>#include <algorithm>#include <map>#include <set>#include <queue>using namespace std;typedef long long LL;typedef pair<int, int> PII;bool hasDigitTwo(int number) {while (number) {if (number % 10 == 2) {return true;}number /= 10;}return false;}int main() {int answer = 0;for (int i = 1; i <= 2020; i++) {if (hasDigitTwo(i)) {answer++;}}printf("%d\n", answer);return 0;}我的答案 563试题 B: 扩散本题总分:5 分【问题描述】⼩蓝在⼀张⽆限⼤的特殊画布上作画。
这张画布可以看成⼀个⽅格图,每个格⼦可以⽤⼀个⼆维的整数坐标表⽰。
⼩蓝在画布上⾸先点了⼀下⼏个点:(0,0), (2020,11), (11,14), (2000,2000)。
只有这⼏个格⼦上有⿊⾊,其它位置都是⽩⾊的。
每过⼀分钟,⿊⾊就会扩散⼀点。
具体的,如果⼀个格⼦⾥⾯是⿊⾊,它就会扩散到上、下、左、右四个相邻的格⼦中,使得这四个格⼦也变成⿊⾊(如果原来就是⿊⾊,则还是⿊⾊)。
第十一届蓝桥杯B组国赛CC++-B题扩散-BFS
第⼗⼀届蓝桥杯B组国赛CC++-B题扩散-BFS题意注意1. ⾸先我们要明确的⼀点就是:数组⾥⾯是⽆法存负数下标的,可以存负数。
所以题⽬中给的(0,0)点,如果我们从该点bfs的话,会造成数组越界的情况2. 针对第⼀点的问题,有两个解决办法。
第⼀办法是:给出的四个坐标每⼀个都去加上2020;第⼆个办法就是⽤map去进⾏存储思路除去上⾯需要注意的地⽅,剩下的就是⼀个bfs模板,直接写就⾏了答案是:20312088AC代码#include<bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3ftypedef long long ll;//(0,0) +2020 (2020,2020)//(2020,11) +2020 (4040,2031)//(11,14) +2020 (2031,2034)//(2000,2000) +2020 (4020,4020)// max=4020,4020+2020=6040const int N=6100;bool book[N][N];int ans=4,to[4][2]= {{-1,0},{1,0},{0,1},{0,-1}}; struct node{int x,y,step;} p,q;queue<node>Q;//void bfs(int x,int y)void bfs(){//book[x][y]=1;while(!Q.empty()){p=Q.front();Q.pop();for(int i=0; i<4; i++){q.x=p.x+to[i][0];q.y=p.y+to[i][1];q.step=p.step+1;if(!book[q.x][q.y]&&q.step<=2020) {book[q.x][q.y]=1;ans++;Q.push(q);}}}}void init(int x,int y){book[x][y]=1;p.x=x,p.y=y,p.step=0;Q.push(p);}int main(){init(2020,2020);init(4040,2031);init(2031,2034);init(4020,4020);bfs();cout<<ans<<endl;return 0;}。
2021蓝桥杯B组部分题题解(比赛没参加,小白一个,随便写写)
2021蓝桥杯B组部分题题解(⽐赛没参加,⼩⽩⼀个,随便写写)A题:空间根据: 1MB = 1024KB 1KB = 1024B 1B = 8bit由题可知 32bit = 4B直接模拟即可#include <iostream>using namespace std;int main (){ cout << 256 * 1024 * 1024 / 4 <<endl; return0;}答案:67108864B题:卡⽚定义⼗个下标0-9的数组,每个数组包含数字2021,可表⽰为每个0-9的数字有2021个。
定义i=1表⽰为从1开始排数,取 i mod 10 的余数,对于每个余数a[i % 10] -- 即可,直到把某个数字减完。
1 #include <iostream>2using namespace std;34int main ()5 {6int a[10] = {2021,2021,2021,2021,2021,2021,2021,2021,2021,2021};78int res = 0;9int i = 1;10while (i)11 {12int k = i;13while (k)14 {15if (a[k%10] == 0)16 {17 cout << res <<endl;18return0;19 }20 a[k % 10] -- ;21 k /= 10;2223 }24 res++;25 i ++;26 }2728return0;29 }答案:3181C题:直线设直线⽅程y = kx + m;根据直线性质:斜率k = (y1 - y2) / (x1 - x2)截距b = m枚举每个点,这⾥需要注意的是,由于垂直线不存在斜率,所以当x1 = x2的时候不枚举。
定义Line结构体储存k,b。
在误差1e-8之内可算作同⼀条直线。
2021年第十二届蓝桥杯国赛javaB组真题及解析
2021年第⼗⼆届蓝桥杯国赛javaB组真题及解析2021年第⼗⼆届蓝桥杯国赛javaB组试题A: 整数范围试题B: 纯质数试题C: 完全⽇期试题D: 最⼩权值试题E: ⼤写试题F: 123试题G: 和与乘积试题H: 巧克⼒试题I: 翻转括号序列试题J: 异或三⾓试题A: 整数范围本题总分:5 分【问题描述】 ⽤8位⼆进制(⼀个字节)来表⽰⼀个⾮负整数,表⽰的最⼩值是0,则⼀般能表⽰的最⼤值是多少?【答案提交】这是⼀道结果填空的题,你只需要算出结果后提交即可。
本题的结果为⼀个整数,在提交答案时只填写这个整数,填写多余的内容将⽆法得分。
答案:255试题B: 纯质数本题总分:5 分【问题描述】如果⼀个正整数只有1和它本⾝两个约数,则称为⼀个质数(⼜称素数)。
前⼏个质数是:2,3,5,7,11,13,17,19,23,29,31,37…。
如果⼀个质数的所有⼗进制数位都是质数,我们称它为纯质数。
例如:2,3,5,7,23,37都是纯质数,⽽11,13,17,19,29,31不是纯质数。
当然1,4,35也不是纯质数。
请问,在1到20210605中,有多少个纯质数?【答案提交】这是⼀道结果填空的题,你只需要算出结果后提交即可。
本题的结果为⼀个整数,在提交答案时只填写这个整数,填写多余的内容将⽆法得分。
答案:1903试题C: 完全⽇期本题总分:10 分【问题描述】如果⼀个⽇期中年⽉⽇的各位数字之和是完全平⽅数,则称为⼀个完全⽇期。
例如:2021年6⽉5⽇的各位数字之和为2 + 0 + 2 + 1 + 6 + 5 = 16,⽽16是⼀个完全平⽅数,它是4的平⽅。
所以2021年6⽉5⽇是⼀个完全⽇期。
例如:2021年6⽉23⽇的各位数字之和为2 + 0 + 2 + 1 + 6 + 2 + 3 = 16,是⼀个完全平⽅数。
所以2021年6⽉23⽇也是⼀个完全⽇期。
请问,从2001年1⽉1⽇到2021年12⽉31⽇中,⼀共有多少个完全⽇期?【答案提交】这是⼀道结果填空的题,你只需要算出结果后提交即可。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
for( end = start ; end < 236 ; end ++ )
{
int sum = 0;
for(int i = start; i <= end; i ++)
sum += i;
if( sum == 236)
printf("start : %d end : %d\n",start,end);
{
if(p<r)
{
int q = partition(a,p,r);
quicksort(a,p,q-1);
quicksort(a,q+1,r);
}
}
int main()
{
int i;
int a[] = {5,13,6,24,2,8,19,27,6,12,1,17};
int N = 12;
quicksort(a, 0, N-1);
memset(visit,0,sizeof(visit));
dfs(1);
cout<<sum;
return 0;
}
(4)
快速排序
排序在各种场合经常被用到。
快速排序是十分常用的高效率的算法。其思想是Fra bibliotek先选一个“标尺”,
用它把整个队列过一遍筛子,
以保证:其左边的元素都不大于它,其右边的元素都不小于它。
这样,排序问题就被分割为两个子区间。
BEFFF
BDFFF
BDEFF
BCFFF
BCEFF
BCDFF
BCDEF
....
(以下省略,总共101行)
#include <stdio.h>
#define N 6
#define M 5
#define BUF 1024
请问,他从多少岁开始过生日party的?
请填写他开始过生日party的年龄数。
题解:暴力枚举。
第一重循环枚举刚开始过生日时候的岁数。
第二重循环是枚举现在的岁数
第三重循环就是将刚开始过生日的岁数和现在的岁数加起来。
int start,end;
for(start = 1 ; start < 236 ; start ++)
}
int partition(int a[], int p, int r)
{
int i = p;
int j = r + 1;
int x = a[p];
while(1)
{
while(i<r && a[++i]<x);//由于要按照从小到大排序,就i一直向右移动直到大于x值位置
while(a[--j]>x);//一样的,一直左移直到小于x时
}
}
(3)
B DEF
A + — + —— = 10
C GHI
(如果显示有问题,可以参见【图1.jpg】)
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/714就是一种解法,
5+3/1+972/486是另一种解法。
这个算式一共有多少种解法?//29
题解:DFS+回溯
a[i] = a[i-1] + i;
int ans = 0;
for(int j = 1 ; j < 101 ; j ++)
ans += a[j];
printf("%d\n",ans);
(2)
生日蜡烛
某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。
现在算起来,他一共吹熄了236根蜡烛。
for(i=0; i<N; i++) printf("%d ", a[i]);
printf("\n");
return 0;
}
题解:快速排序。这里是单步快排。就是将一堆数按照某个数作为基准数分成左右两堆
s),因为这时候的j是已经不大于了x的,p这个位置要放该区间的最小值,j满足,换过去。
(5)
抽签
X星球要派出一个5人组成的观察团前往W星。
//cout<<"*"<<endl;
return ;
}
for(int i=1;i<=9;++i)
{
if(!visit[i])
{
visit[i]=1;
num[n]=i;
dfs(n+1);
visit[i]=0;
num[n]=0;
}
}
}
int main()
{
memset(num,0,sizeof(num));
{
int b=num[7]*100+num[8]*10+num[9]; //GHI
int a=num[4]*100+num[5]*10+num[6]; //DEF
//cout<<b<<' '<<a<<' '<<num[1]<<' '<<num[2]<<' '<<num[3]<<endl;
if(num[1]*num[3]*b+num[2]*b+num[3]*a==10*num[3]*b) sum++;
再分别对子区间排序就可以了。
这样,排序问题就被分割为两个子区间。
再分别对子区间排序就可以了。
下面的代码是一种实现,请分析并填写划线部分缺少的代码。
#include <stdio.h>
void s a[], int i, int j)
{
int t = a[i];
a[i] = a[j];
a[j] = t;
(1)
煤球数目
有一堆煤球,堆成三角棱锥形。具体:
第一层放1个,
第二层3个(排列成三角形),
第三层6个(排列成三角形),
第四层10个(排列成三角形),
....
如果一共有100层,共有多少个煤球?
题解:纯粹的数学题而已
int a[101] ={0};
for(int i = 1 ; i < 101 ; i ++)
其中:
A国最多可以派出4人。
B国最多可以派出2人。
C国最多可以派出2人。
....
那么最终派往W星的观察团会有多少种国别的不同组合呢?
下面的程序解决了这个问题。
数组a[]中既是每个国家可以派出的最多的名额。
程序执行结果为:
DEFFF
CEFFF
CDFFF
CDEFF
CCFFF
CCEFF
CCDFF
CCDEF
if(i>=j) break;//如果一直移动到了相交的区间,说明这个区间内都是由小到大的,就直接退拉!不用交换啦!
s);//有的话呢,就交换,这样保证了左小右大。
}
______________________;
return j;
}
void quicksort(int a[], int p, int r)
由于计算机中5/2会等于2,而且如果打算采用精度方面的处理的话,会很麻烦,而且很容易错。
所以,把这些式子全部变成乘法形式就好了。
A*C*GHI+B*GHI+DEF*C=10*C*GHI
代码:
int visit[10],num[10];
int sum=0;
void dfs(int n)
{
if(n==10)