![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
蓝桥杯C++题解
文章平均质量分 61
蓝桥杯刷题记录。
JessieXu.
这个作者很懒,什么都没留下…
展开
-
蓝桥杯——逗志芃的暴走 (C++)
题目来源:蓝桥杯算法训练知识点:搜索、Floyd算法问题描述 逗志芃是有妹子的现充,但是有时候妹子就是烦恼。因为逗志芃太逗了,所以这段时间妹子对逗志芃发动了技能无理取闹,妹子要去玩很多的景点。由于逗志芃之前抽机花费了太多的时间,不久以后又要微积分考试了,所以现在被妹子搞成暴走状态了。但是妹子永远是上帝,所以逗志芃只能带妹子出去玩,不过为了节约时间,他希望找到一条花费时间最少的一次性游览线路。输入格式 第一行1个数n,表示逗志芃所在的城市有多少个景点,接下来是一个n*n的矩阵。a(i,j)表示原创 2022-02-20 19:25:52 · 1442 阅读 · 3 评论 -
蓝桥杯——Sticks (C++)
题目来源:蓝桥杯算法训练知识点:搜索问题描述 George took sticks of the same length and cut them randomly until all parts became at most 50 units long. Now he wants to return sticks to the original state, but he forgot how many sticks he had originally and how long they wer原创 2022-02-19 19:28:00 · 1051 阅读 · 1 评论 -
蓝桥杯——车的放置 (C++)
题目来源:蓝桥杯算法训练知识点:DFS搜索问题描述 在一个n*n的棋盘中,每个格子中至多放置一个车,且要保证任何两个车都不能相互攻击,有多少中放法(车与车之间是没有差别的)输入格式 包含一个正整数n输出格式 一个整数,表示放置车的方法数样例输入2样例输出7数据规模和约定 n<=8 【样例解释】一个车都不放为1种,放置一个车有4种,放置2个车有2种。题目分析类似 n皇后,这里每行、每列只能放一个车,对角线没有约束,所以一行行地放置就可以了。因为车之间没有区别原创 2022-02-17 13:46:36 · 985 阅读 · 0 评论 -
蓝桥杯——粘木棍 (C++)
题目来源:蓝桥杯算法训练知识点:DFS搜索问题描述 有N根木棍,需要将其粘贴成M个长木棍,使得最长的和最短的的差距最小。输入格式 第一行两个整数N,M。 一行N个整数,表示木棍的长度。输出格式 一行一个整数,表示最小的差距样例输入3 210 20 40样例输出10数据规模和约定 N, M<=7题目分析暴力法 思路:列举所有可能的组合,比较求最小差距。显然这种做法在计算过程中包含大量的重复计算,耗时较长。采用 DFS+穷举 的思路:每次选择两根木棍进行合原创 2022-02-16 17:01:07 · 2432 阅读 · 7 评论 -
蓝桥杯——矩形面积交
题目来源:蓝桥杯基础练习问题描述 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。输入格式 输入仅包含两行,每行描述一个矩形。 在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。输出格式 输出仅包含一个实数,为交的面积,保留到小数后两位。样例输入1 1 3 32 2 4 4样例输出1.00题目分析基础题,开始不要想得太复杂。我们先假设所有输入原创 2022-02-12 17:00:15 · 724 阅读 · 0 评论 -
蓝桥杯——完美的代价
题目来源:蓝桥杯基础练习知识点:回文串,字符串处理问题描述 回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。 交换的定义是:交换两个相邻的字符 例如mamad 第一次交换 ad : mamda 第二次交换 md : madma 第三次交换 ma : madam (回文!完美!)输入格式 第一行是一个整数N,表示接下来的字符串的长度(N <=原创 2022-02-12 11:58:33 · 169 阅读 · 0 评论 -
蓝桥杯——回形取数
题目来源:蓝桥杯基础练习问题描述 回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。输入格式 输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。输出格式 输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。 样例输入3 31 2 34 5 67 8 9样例输出1 4 7 8 9 6 3 2 5 样例输入3 2原创 2022-02-07 16:47:40 · 803 阅读 · 0 评论 -
蓝桥杯——2n皇后问题
题目来源:蓝桥杯基础练习知识点:回溯,递归问题描述 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条对角线上,任意的两个白皇后都不在同一行、同一列或同一条对角线上。问总共有多少种放法?n小于等于8。输入格式 输入的第一行为一个整数n,表示棋盘的大小。 接下来n行,每行n个0或1的整数,如果一个整数为1,表示对应的位置可以放皇后,如果一个整数为0,表示对应的位置不可以放皇后。输出格式 输出一个整原创 2022-02-05 13:01:58 · 432 阅读 · 0 评论 -
蓝桥杯——礼物
题目来源:蓝桥杯算法训练知识点:二分法,前缀和问题描述 JiaoShou在爱琳大陆的旅行完毕,即将回家,为了纪念这次旅行,他决定带回一些礼物给好朋友。 在走出了怪物森林以后,JiaoShou看到了排成一排的N个石子。 这些石子很漂亮,JiaoShou决定以此为礼物。 但是这N个石子被施加了一种特殊的魔法。 如果要取走石子,必须按照以下的规则去取。 每次必须取连续的2*K个石子,并且满足前K个石子的重量和小于等于S,后K个石子的重量和小于等于S。 由于时间紧迫,Jiaosho原创 2022-02-04 17:17:35 · 2465 阅读 · 0 评论 -
蓝桥杯——Huffuman树
题目来源:蓝桥杯基础练习知识点:排序,循环次数问题描述 Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。 给出一列数{pi}={p0, p1, …, pn-1},用这列数构造Huffman树的过程如下: 1. 找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{pi}中。这个过程的费用记为pa + pb。 2. 重复步骤1,直到{pi}中只剩下一个数。 在上面的操作过程中,把所有的费用相加,就得到了原创 2022-02-04 12:45:23 · 148 阅读 · 0 评论 -
蓝桥杯——无聊的逗
题目来源:蓝桥杯算法训练知识点:动态规划,等和子集问题描述 逗志芃在干了很多事情后终于闲下来了,然后就陷入了深深的无聊中。不过他想到了一个游戏来使他更无聊。他拿出n个木棍,然后选出其中一些粘成一根长的,然后再选一些粘成另一个长的,他想知道在两根一样长的情况下长度最长是多少。输入格式 第一行一个数n,表示n个棍子。第二行n个数,每个数表示一根棍子的长度。输出格式 一个数,最大的长度。 样例输入41 2 3 1样例输出3数据规模和约定 n<=15问题分析本题原创 2022-01-30 17:53:14 · 2249 阅读 · 3 评论 -
蓝桥杯——数字游戏
题目来源:蓝桥杯算法训练知识点:全排列(穷举)问题描述 给定一个1~N的排列a[i],每次将相邻两个数相加,得到新序列,再对新序列重复这样的操作,显然每次得到的序列都比上一次的序列长度少1,最终只剩一个数字。 例如: 3 1 2 4 4 3 6 7 9 16 现在如果知道N和最后得到的数字sum,请求出最初序列a[i],为1~N的一个排列。若有多种答案,则输出字典序最小的那一个。数据保证有解。输入格式 第1行为两个正整数n,sum输出格式 一个1~N的一个排列原创 2022-01-30 16:01:10 · 1524 阅读 · 0 评论 -
蓝桥杯——最小字符串
题目来源知识点:贪心算法问题描述给定一些字符串(只包含小写字母),要求将他们串起来构成一个字典序最小的字符串。输入格式第一行 T,表示有T组数据。接下来 T 组数据每组第一行一个正整数n,表示字符串个数。接下来n行,每行一个字符串(长度不超过100)。输出格式T行,每行一个字符串。样例输入13abc样例输出abc数据规模和约定T<=7000,n<=100;题目分析一开始我的做法为:对一组中的所有字符串按照从小到大排序,依次输出。提交代码发现答案原创 2022-01-29 16:58:24 · 3004 阅读 · 0 评论 -
蓝桥杯——印章、拿金币
题目来源:蓝桥杯算法训练知识点:动态规划(DP)动态规划介绍动态规划常用于求解最优问题。在我看来,动态规划的求解过程是走一步看一步,每走一步都确保当前的状态下是最优的。也可以说,动态规划将大问题划分为多个阶段的子问题,每个子问题都求得最优解,那么组合成的大问题就得到了最优解。我将动态规划的实现写成如下四个步骤:定义DP数组,一般是二维数组。这个数组描述了问题的状态和对应状态下的值。这个所谓的值一般就是我们要求的东西(最大数、最小数)。数组的行、列分别代表什么含义也是需要想清楚的。确定状态转移方原创 2022-01-29 16:02:28 · 762 阅读 · 0 评论 -
蓝桥杯——十六进制转八进制
题目来源:蓝桥杯基础练习知识点:进制转换,字符输入问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由0 ~ 9、大写字母A ~ F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式 输出n行,每行为输入对应的八进制正整数。【注意】输入的十六进制数不会有前导0,比如012A。输出的八进制数也不能有前导0。样例输入 2 39原创 2022-01-27 12:25:13 · 796 阅读 · 0 评论 -
蓝桥杯——等差数列
题目来源:2019,省赛知识点:等差数列,最大公约数 (gcd)题目描述数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一 部分的数列,只记得其中 N 个整数。现在给出这 N 个整数,小明想知道包含这 N 个整数的最短的等差数列有几项?输入描述输入的第一行包含一个整数 N。第二行包含 N 个整数 A1,A2,⋅⋅⋅,ANA_1,A_2,··· ,A_NA1,A2,⋅⋅⋅,AN (注意A1A_1A1~ANA_NAN并不一定是按等差数列中的顺序给出)其中,2≤N≤105原创 2022-01-24 12:06:25 · 259 阅读 · 0 评论 -
蓝桥杯——迷宫
题目来源:2019,省赛知识点:BFS,C++文件读写题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可以通行的地方。010000000100001001110000迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这个它的上、下、左、右四个方向之一。对于上面的迷宫,从入口开始,可以按 DRRURRDDDR的顺序通过迷宫, 一共 10 步。其中 D、U、L、R 分别表原创 2022-01-23 17:52:54 · 1799 阅读 · 0 评论 -
蓝桥杯——数的分解
题目来源:2019,省赛知识点:数据分解,字符串与数字的转换题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包含数字 2 和 4,一共有多少种不同的分解方法?注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18 和 1001+1000+18 被视为同一种。运行限制最大运行时间:1s最大运行内存: 128M题目分析分解数字为三个更小的数字的加组合,首先还是考虑暴原创 2022-01-22 12:08:28 · 478 阅读 · 0 评论 -
蓝桥杯——数列求值
题目来源:2019,省赛知识点:数据表示范围,数据溢出题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。给定数列 1, 1, 1, 3, 5, 9, 17,⋯,从第 4 项开始,每项都是前 3 项的和。求第 20190324 项的最后 4 位数字。运行限制最大运行时间:1s最大运行内存: 128M题目分析首先尝试暴力解法,如果能暴力解决就不需要复杂的算法。暴力解法即直接使用一个循环,逐个计算数列元素的值。代码#include <iostream原创 2022-01-22 11:46:58 · 660 阅读 · 0 评论 -
蓝桥杯-后缀表达式
蓝桥杯2019年第十届省赛真题-后缀表达式题目描述给定 N 个加号、M 个减号以及 N + M + 1 个整数 A1, A2, · · · , AN+M+1,小 明想知道在所有由这 N 个加号、M 个减号以及 N + M + 1 个整数凑出的合法的 后缀表达式中,结果最大的是哪一个?请你输出这个最大的结果。例如使用1 2 3 + -,则 “2 3 + 1 -” 这个后缀表达式结果是 4,是最大的。输入第一行包含两个整数 N 和 M。第二行包含 N + M + 1 个整数 A1, A2,原创 2021-09-27 10:48:50 · 270 阅读 · 0 评论