蓝桥杯
准备蓝桥杯过程的刷题记录以及可能的心得体会吧
ChanCherry、
信安小白,欢迎大家多多交流! CSDN大多数时候好像用来记笔记[捂脸]
个人博客:https://chancherry.github.io/
有事可以Q我3324838931
展开
-
蓝桥杯题解索引
这篇对目前所写的题解做一个汇总,每一个题解里面都有题目和AC代码,方便查看^_^蓝桥杯基础练习BASIC-17 基础练习 矩阵乘法BASIC-18 基础练习 矩形面积交BASIC-19 基础练习 完美的代价BASIC-20 基础练习 数的读法BASIC-21 基础练习 Sine之舞BASIC-22 基础练习 FJ的字符串BASIC-23 基础练习 芯片测试BASIC-24 基础练...原创 2020-05-05 19:56:29 · 228 阅读 · 0 评论 -
ALGO-79 算法训练 删除数组零元素
从键盘读入n个整数放入数组中,编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动。注意,CompactIntegers函数需要接受数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数。输出删除后数组中元素的个数并依次输出数组元素。样例输入: (输入格式说明:5为输入数据的个数,3 4 0 0 2 是以空格隔开的5个整数)5 3 4 0 0 2样例输出:(输出格式说明:3为非零数据的个数,3 4 2 是以空格隔开的3个非零整数)33 4 2原创 2020-05-14 13:08:36 · 241 阅读 · 0 评论 -
ALGO-53 基础训练 最小乘积(基本型)
问题描述 给两组数,各n个。 请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小。要求程序输出这个最小值。 例如两组数分别为:1 3 -5和-2 4 1 那么对应乘积取和的最小值应为: (-5) * 4 + 3 * (-2) + 1 * 1 = -25输入格式 第一个行一个数T表示数据组数。后面每组数据,先读入一个n,接下来两行每行n个数,每个数的绝对值小于等于1000。 n<=8,T<=1000输出格式 一个数表示答案。样例输入原创 2020-05-14 10:05:45 · 246 阅读 · 0 评论 -
算法训练 6-1 递归求二项式系数值
问题描述样例输入一个满足题目要求的输入范例。3 10样例输出与上面的样例输入对应的输出。数据规模和约定 输入数据中每一个数的范围。 例:结果在int表示时不会溢出。思路:初中还是高中就学了求二项式系数的公式,比较简便的是:Cnk = [ n(n-1)(n-2)…(n-k+1) ] / k!。递归求一下阶乘结果就好了。不过提交之后想起来还有另一个麻烦一点的公式,Cnk = n! / [ k! *(n-k)! ],题目原本的意思应该是用这个吧,哎呀不管,用了递归就行嘻嘻#inclu原创 2020-05-13 23:30:52 · 386 阅读 · 0 评论 -
算法训练 排序
问题描述 编写一个程序,输入3个整数,然后程序将对这三个整数按照从大到小进行排列。 输入格式:输入只有一行,即三个整数,中间用空格隔开。 输出格式:输出只有一行,即排序后的结果。 输入输出样例样例输入9 2 30样例输出30 9 2sort就完了。#include <iostream>#include <algorithm>using namespace std;int main(){ int i,a[3]; for(i=0;i<3;i+原创 2020-05-13 23:00:16 · 139 阅读 · 0 评论 -
算法训练 1的个数
问题描述 输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。输入格式 一个正整数n输出格式 一个整数,表示1出现的资料样例输入15样例输出8数据规模和约定 n不超过30000思路:比较简单。定义一个方法计算每个数中1的个数,然后加起来就好了。AC代码:#include <iostream>using namespace std;int Num(int n){ in原创 2020-05-13 22:39:49 · 191 阅读 · 0 评论 -
历届试题 回文数字
问题描述 观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。 本题要求你找到一些5位或6位的十进制数字。满足如下要求: 该数字的各个数位之和等于输入的整数。输入格式 一个正整数 n (10<n<100), 表示要求满足的数位和。输出格式 若干行,每行包含一个满足要求的5位或6位整数。 数字按从小到大的顺序排列。 如果没有满足条件的,输出:-1样例输入44样例输出998994999原创 2020-05-13 22:29:19 · 182 阅读 · 0 评论 -
历届试题 错误票据
问题描述某涉密单位下发了某种票据,并要在年终全部收回。每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。你的任务是通过编程,找出断号的ID和重号的ID。假设断号不可能发生在最大和最小号。输入格式要求程序首先输入一个整数N(N<100)表示后面数据行数。接着读入N行数据。每行数据长度不等,是用空格分开的若干个(不大于100个)正整数(不大于10000原创 2020-05-13 17:16:40 · 149 阅读 · 0 评论 -
基础练习 Torry的困惑(基本型)
问题描述 Torry从小喜爱数学。一天,老师告诉他,像2、3、5、7……这样的数叫做质数。Torry突然想到一个问题,前10、100、1000、10000……个质数的乘积是多少呢?他把这个问题告诉老师。老师愣住了,一时回答不出来。于是Torry求助于会编程的你,请你算出前n个质数的乘积。不过,考虑到你才接触编程不久,Torry只要你算出这个数模上50000的值。输入格式 仅包含一个正整数n,其中n<=100000。输出格式 输出一行,即前n个质数的乘积模50000的值。样例输入1原创 2020-05-12 18:08:34 · 138 阅读 · 0 评论 -
基础训练 寻找数组中最大值
问题描述 对于给定整数数组a[],寻找其中最大值,并返回下标。输入格式 整数数组a[],数组元素个数小于1等于100。输出数据分作两行:第一行只有一个数,表示数组元素个数;第二行为数组的各个元素。输出格式 输出最大值,及其下标样例输入33 2 1样例输出3 0#include <iostream>using namespace std;#include <algorithm>int main(){ int n,i; cin>>n原创 2020-05-12 17:22:21 · 295 阅读 · 0 评论 -
算法训练 P1103
编程实现两个复数的运算。设有两个复数 和 ,则他们的运算公式为: 要求:(1)定义一个结构体类型来描述复数。 (2)复数之间的加法、减法、乘法和除法分别用不用的函数来实现。 (3)必须使用结构体指针的方法把函数的计算结果返回。 说明:用户输入:运算符号(+,-,*,/) a b c d. 输出:a+bi,输出时不管a,b是小于0或等于0都按该格式输出,输出时a,b都保留两位。输入: - 2.5 3.6 1.5 4.9输出: 1.00+-1.30i貌似不用结构体也可以原创 2020-05-08 22:33:38 · 155 阅读 · 0 评论 -
算法训练 P0505
一个整数n的阶乘可以写成n!,它表示从1到n这n个整数的乘积。阶乘的增长速度非常快,例如,13!就已经比较大了,已经无法存放在一个整型变量中;而35!就更大了,它已经无法存放在一个浮点型变量中。因此,当n比较大时,去计算n!是非常困难的。幸运的是,在本题中,我们的任务不是去计算n!,而是去计算n!最右边的那个非0的数字是多少。例如,5!=1*2*3*4*5=120,因此5!最右边的那个非0...原创 2020-05-08 22:19:38 · 254 阅读 · 0 评论 -
算法训练 C++ CH08 01
问题描述 已知一个有理数类Zrf_Ratio,实现如下的操作符重载形式: friend std::ostream& operator<<(std::ostream&, const zrf_Ratio&);//输出最简分数 friend std::istream& operator>>(std::istream&, zrf_...原创 2020-05-07 00:31:20 · 231 阅读 · 0 评论 -
算法训练 5-1最小公倍数
问题描述 编写一函数lcm,求两个正整数的最小公倍数。样例输入一个满足题目要求的输入范例。例:3 5样例输出与上面的样例输入对应的输出。例:数据规模和约定 输入数据中每一个数的范围。 例:两个数都小于65536。#include <iostream>using namespace std;int lcm(int a,int b){ int i,ma...原创 2020-05-06 21:59:14 · 154 阅读 · 0 评论 -
算法训练 表达式计算
问题描述 输入一个只包含加减乖除和括号的合法表达式,求表达式的值。其中除表示整除。输入格式 输入一行,包含一个表达式。输出格式 输出这个表达式的值。样例输入1-2+3*(4-5)样例输出-4数据规模和约定 表达式长度不超过100,表达式运算合法且运算过程都在int内进行。思路分析:我们一般的表达式计算都是中缀表达式,而计算机中习惯用后缀表达式计算,所以,我们需要...原创 2020-05-06 14:53:00 · 297 阅读 · 0 评论 -
算法训练 大小写转换
问题描述 编写一个程序,输入一个字符串(长度不超过20),然后把这个字符串内的每一个字符进行大小写变换,即将大写字母变成小写,小写字母变成大写,然后把这个新的字符串输出。 输入格式:输入一个字符串,而且这个字符串当中只包含英文字母,不包含其他类型的字符,也没有空格。 输出格式:输出经过转换后的字符串。输入输出样例样例输入AeDb样例输出aEdB大写字母A的ASCII值为6...原创 2020-05-06 00:01:47 · 366 阅读 · 0 评论 -
算法训练 加法运算
问题描述 你的表妹正在学习整数的加法,请编写一个程序来帮助她学习。该程序调用了一个函数GetTwoInts,由它来返回两个从键盘读入的100以内的整数,然后计算这两个整数之和,并把答案显示出来。要求:在主函数中不能使用scanf等函数直接输入这两个整数,而必须通过调用GetTwoInts函数来完成,在GetTwoInts函数中可以使用scanf函数。另外,由于该函数必须同时返回两个整数,因此不...原创 2020-05-05 18:12:41 · 242 阅读 · 0 评论 -
算法训练 数据交换
问题描述 编写一个程序,输入两个整数,分别存放在变量x和y当中,然后使用自己定义的函数swap来交换这两个变量的值。 输入格式:输入只有一行,包括两个整数。 输出格式:输出只有一行,也是两个整数,即交换以后的结果。 要求:主函数负责数据的输入与输出,但不能直接交换这两个变量的值,必须通过调用单独定义的函数swap来完成,而swap函数只负责交换变量的值,不能输出交换后的结果。输入...原创 2020-05-05 17:56:41 · 176 阅读 · 0 评论 -
算法训练 字符串合并
问题描述 输入两个字符串,将其合并为一个字符串后输出。输入格式 输入两个字符串输出格式 输出合并后的字符串样例输入一个满足题目要求的输入范例。HelloWorld样例输出HelloWorld数据规模和约定 输入的字符串长度0<n<100关于字符串拼接,C里面可以用strcat()函数来连接字符数组,C++可以直接用+连接。#include &l...原创 2020-05-05 08:57:26 · 425 阅读 · 0 评论 -
算法训练 大等于n的最小完全平方数
问题描述输出大等于n的最小的完全平方数。 若一个数能表示成某个自然数的平方的形式,则称这个数为完全平方数 Tips:注意数据范围输入格式一个整数n输出格式大等于n的最小的完全平方数样例输入71711样例输出71824这道题思路其实挺简单的,但要注意几个容易掉坑的点。当n<=0时,直接输出0;当n等于n的平方根的平方时,直接输出n;不等于就输出平方...原创 2020-05-04 20:37:29 · 174 阅读 · 0 评论 -
算法训练 关联矩阵(C/C++)
问题描述 有一个n个结点m条边的有向图,请输出他的关联矩阵。输入格式 第一行两个整数n、m,表示图中结点和边的数目。n<=100,m<=1000。 接下来m行,每行两个整数a、b,表示图中有(a,b)边。 注意图中可能含有重边,但不会有自环。输出格式 输出该图的关联矩阵,注意请勿改变边和结点的顺序。样例输入5 91 23 11 52 52 32 ...原创 2020-05-04 18:46:44 · 855 阅读 · 1 评论 -
算法训练 二进制数数
问题描述 给定L,R。统计[L,R]区间内的所有数在二进制下包含的“1”的个数之和。 如5的二进制为101,包含2个“1”。输入格式 第一行包含2个数L,R输出格式 一个数S,表示[L,R]区间内的所有数在二进制下包含的“1”的个数之和。样例输入2 3样例输出3数据规模和约定 L<=R<=100000;#include <iostream&g...原创 2020-05-02 23:29:41 · 193 阅读 · 0 评论 -
算法训练 数组逆序排列(C/C++)
问题描述 编写一个程序,读入一组整数(不超过20个),并把它们保存在一个整型数组中。当用户输入0时,表示输入结束。然后程序将把这个数组中的值按逆序重新存放,并打印出来。要求:(1)只能定义一个数组;(2)在交换两个数组元素的值时,必须使用单独定义的一个函数swap。例如:假设用户输入了一组数据:7 19 -5 6 2 0,那么程序将会把前五个有效数据保存在一个数组中,即7 19 -5 6 2,...原创 2020-05-01 07:57:21 · 1580 阅读 · 0 评论 -
算法训练 首字母变大写(C/C++)
问题描述 对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。在字符串中,单词之间通过空白符分隔,空白符包括:空格(' ')、制表符('\t')、回车符('\r')、换行符('\n')输入格式 输入一行:待处理的字符串(长度小于80)输出格式 输出一行:转换后的字符串。样例输入if so, you already have a google a...原创 2020-05-01 00:21:36 · 1454 阅读 · 0 评论 -
算法训练 s01串(C/C++)
问题描述 s01串初始为"0" 按以下方式变换 0变1,1变01输入格式 1个整数(0~19)输出格式 n次变换后s01串样例输入3样例输出101数据规模和约定 0~19思路:有点纠结不知道怎么写,后来看了大佬的解法,用string对象,然后逐位判断就好了,还有insert用的特别神,赞!#include <iostream>#inclu...原创 2020-04-30 18:46:59 · 732 阅读 · 0 评论 -
算法训练 幂方分解(C/C++)
问题描述 任何一个正整数都可以用2的幂次方表示。例如: 137=2^7+2^3+2^0 同时约定方次用括号来表示,即ab 可表示为a(b)。 由此可知,137可表示为: 2(7)+2(3)+2(0) 进一步:7= 2^2+2+2^0 (21用2表示) 3=2+2^0 所以最后137可表示为: 2(2(2)+2+2(0))+2(2+2(0))+2(0) 又如:...原创 2020-04-30 18:29:10 · 910 阅读 · 0 评论 -
算法训练 瓷砖铺放(C/C++)
问题描述 有一长度为N(1<=N<=10)的地板,给定两种不同瓷砖:一种长度为1,另一种长度为2,数目不限。要将这个长度为N的地板铺满,一共有多少种不同的铺法? 例如,长度为4的地面一共有如下5种铺法: 4=1+1+1+1 4=2+1+1 4=1+2+1 4=1+1+2 4=2+2 编程用递归的方法求解上述问题。输入格式 只有一个数N,代表地板的长...原创 2020-04-30 11:46:59 · 3436 阅读 · 1 评论 -
算法训练 数组排序去重
问题描述 输入10个整数组成的序列,要求对其进行升序排序,并去掉重复元素。输入格式 10个整数。输出格式 多行输出,每行一个元素。样例输入2 2 3 3 1 1 5 5 5 5样例输出1235先排序,然后通过遍历去除重复元素,输出。#include <iostream>#include <cstring>#include <al...原创 2020-04-30 11:04:14 · 336 阅读 · 0 评论 -
算法训练 统计单词个数
问题描述 给出一个长度不超过200的由小写英文字母组成的字母串(约定;该字串以每行20个字母的方式输入,且保证每行一定为20个)。要求将此字母串分成k份(1<k<=40),且每份中包含的单词个数加起来总数最大(每份中包含的单词可以部分重叠。当选用一个单词之后,其第一个字母不能再用。例如字符串this中可包含this和is,选用this之后就不能包含th)。 单词在给出的一个...原创 2020-04-30 08:11:10 · 1077 阅读 · 0 评论 -
算法训练 回文数
问题描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。 例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数。 又如:对于10进制数87: STEP1:87+78 = 165 STEP2:165+561 = 726 STEP3:726+627 = 1353 STEP4:1353+3531 = 4884 ...原创 2020-04-29 13:08:13 · 1293 阅读 · 0 评论 -
算法提高 找素数
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 给定区间[L, R] , 请计算区间中素数的个数。输入格式 两个数L和R。输出格式 一行,区间中素数的个数。样例输入2 11样例输出5数据规模和约定 2 <= L <= R <= 2147483647 R-L <= 1000000一开始没考虑那么多,就简单地判断了两个数之...原创 2020-04-28 10:58:25 · 575 阅读 · 0 评论 -
算法提高 质因数2
资源限制时间限制:1.0s 内存限制:256.0MB 将一个正整数N(1<N<32768)分解质因数,把质因数按从小到大的顺序输出。最后输出质因数的个数。输入格式 一行,一个正整数输出格式 两行,第一行为用空格分开的质因数 第二行为质因数的个数样例输入66样例输出2 3 113样例输入90样例输出2 3 3 54样例输入37样例输出...原创 2020-04-26 21:31:43 · 191 阅读 · 0 评论 -
算法提高 计算素数和
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 完成一个程序,该程序计算n以内(包含n)的所有素数之和并返回。注意,提交完整的程序代码。输入格式 输入一个整数 n;输出格式 输出n以前所有素数的和。样例输入5样例输出10#include <iostream>#include <cmath>using namespace ...原创 2020-04-26 19:08:34 · 218 阅读 · 0 评论 -
算法提高 分解质因数
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 给定一个正整数n,尝试对其分解质因数输入格式 仅一行,一个正整数,表示待分解的质因数输出格式 仅一行,从小到大依次输出其质因数,相邻的数用空格隔开样例输入100样例输出2 2 5 5数据规模和约定 n<=2147483647感觉这题和做过的几道质因数的题差不多,改了改就交了下面的。#in...原创 2020-04-26 18:59:54 · 505 阅读 · 2 评论 -
算法提高 质数2
问题描述 给定一个正整数N,请你输出N以内(不包含N)的质数以及质数的个数。输入格式 输入一行,包含一个正整数N。输出格式 共两行。 第1行包含一个整数,表示N以内质数的个数。 第2行包含若干个素数,每两个素数之间用一个空格隔开,素数从小到大输出。样例输入10样例输出42 3 5 7数据规模和约定 N<=1000思路:质数2和上一题质数不一样的地...原创 2020-04-26 18:55:32 · 525 阅读 · 0 评论 -
算法提高 质数
问题描述 给定一个正整数N,请你输出N以内(不包含N)的质数以及质数的个数。输入格式 输入一行,包含一个正整数N。输出格式 共两行。 第1行包含若干个素数,每两个素数之间用一个空格隔开,素数从小到大输出。 第2行包含一个整数,表示N以内质数的个数。样例输入10样例输出2 3 5 74数据规模和约定 N<=1000思路:质数是大于1,除1和本身外没...原创 2020-04-26 18:53:45 · 578 阅读 · 0 评论 -
算法训练 最大质因数
问题描述 给出N个数字,求出有最大的最大质因数的那个数输入格式 第一行:一个整数N。 接下来的N行,每行一个整数A_i,表示给出的那N个数字。输出格式 第一行:一个整数,拥有最大的最大质因数的那个数。样例输入436384042样例输出38数据规模和约定 60%的数据满足:N<=100 100%的数据满足:N<=2500,A_i<=20...原创 2020-04-26 10:19:37 · 851 阅读 · 0 评论 -
算法提高 质因数
将一个正整数N(1<N<32768)分解质因数。例如,输入90,打印出90=2*3*3*5。样例输入66样例输出66=2*3*11思路:① i从2开始循环判断是否是质数,然后判断是不是n的因数,如果是就打印出来,不是就不打印,同时要注意第一个不打印*号。② 要注意质数的判断,一般质因数从2开始,而且是不会超过自身的平方根的。#include <iostream...原创 2020-04-26 09:37:39 · 308 阅读 · 0 评论 -
算法训练 集合运算
问题描述 给出两个整数集合A、B,求出他们的交集、并集以及B在A中的余集。输入格式 第一行为一个整数n,表示集合A中的元素个数。 第二行有n个互不相同的用空格隔开的整数,表示集合A中的元素。 第三行为一个整数m,表示集合B中的元素个数。 第四行有m个互不相同的用空格隔开的整数,表示集合B中的元素。 集合中的所有元素均为int范围内的整数,n、m<=1000。输出...原创 2020-04-24 14:27:23 · 260 阅读 · 0 评论 -
历届试题 九宫重排
问题描述 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着。与空格子相邻的格子中的卡片可以移动到空格中。经过若干次移动,可以形成第二个图所示的局面。 我们把第一个图的局面记为:12345678. 把第二个图的局面记为:123.46758 显然是按从上到下,从左到右的顺序记录数字,空格记为句点。 本题目的任务是已知九宫的初态和终态,求最少经过多少步的移动...原创 2020-04-16 21:20:32 · 257 阅读 · 0 评论