
【蓝桥杯普及】
蓝桥杯普及题,有很多几乎一样的题就不写了,有些过于简单的题也不写了,就是那种会C语言就会的没必要写
不牌不改
※ 接受自己很普通
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
蓝桥杯2019年第十届省赛真题-Fibonacci 数列与黄金分割
题目题目链接题解我未曾设想的道路。我居然以为是高精度的矩阵快速幂,差点心态崩了,直接看了题解……1 ~ 50 打个表,发现到20,小数点后八位就不变了,所以……,解决。代码#include<bits/stdc++.h>using namespace std;typedef long long LL;const int N = 30;int main(){ LL n, f[N]; cin >> n; f[1] = f[2] = 1; for (int原创 2022-04-06 22:39:05 · 337 阅读 · 0 评论 -
蓝桥杯2019年第十届国赛真题-最优包含
题目题目链接题解动态规划。(有点像最长公共子序列)状态定义:dp[i][j]表示S前i个字符要想包含T前j个字符,需要经过的最少修改次数。转移方程:① S[i] == T[j]:此时无需进行变换,S前i个字符要想包含T前j个字符需要经过的最少修改次数就等于S前i-1个字符要想包含T前j-1个字符需要经过的最少修改次数,即dp[i][j] = dp[i-1][j-1]② S[i] != T[j]:两种情况转移而来。其一,为了让S前i个字符包含T前j个字符,我们只需要让让S前i-1个字符包含T原创 2022-04-06 20:42:44 · 689 阅读 · 0 评论 -
蓝桥杯2020年第十一届国赛真题-天干地支
题目题目链接题解简单实现。学到新知识:卯(mao)兔,不是mou!代码#include<iostream>using namespace std;const int N = 1e4;string tian[10] = {"jia", "yi", "bing", "ding", "wu", "ji", "geng", "xin", "ren", "gui"};string dizhi[12] = {"zi", "chou", "yin", "mao", "chen", "si原创 2022-04-06 10:17:17 · 713 阅读 · 0 评论 -
蓝桥杯2019年第十届省赛真题-完全二叉树的权值
题目题目链接题解数据结构。一开始以为要bfs,后来发现是完全二叉树,直接循环即可。代码#include<bits/stdc++.h>using namespace std;const int N = 100100;int n, a[N], sum[N];int main(){ cin >> n; for (int i = 1;i <= n;i ++) cin >> a[i]; int max_dp = (int) log2(n),原创 2022-04-05 19:36:58 · 585 阅读 · 0 评论 -
[蓝桥杯][算法提高VIP]我们的征途是星辰大海
题目添加链接描述题解实现题。这也很基础,写代码的时候细心点就行。代码#include<bits/stdc++.h>using namespace std;const int N = 55;int T, Q, n, sx, sy, tx, ty;string mp[N], op;int dx[] = {-1, 1, 0, 0};int dy[] = {0, 0, -1, 1};int main(){ cin>>T; while(T--) {原创 2022-04-01 21:38:19 · 328 阅读 · 0 评论 -
2018年蓝桥杯省赛-航班时间
题目题目链接题解模拟。规定几个符号,SA→BS_{A\rightarrow B}SA→B、EA→BE_{A\rightarrow B}EA→B、SA←BS_{A\leftarrow B}SA←B、EA←BE_{A\leftarrow B}EA←B分别表示去程(A→BA\rightarrow BA→B)起、落时间和回程(A←BA\leftarrow BA←B)起、落时间,设 ddd 为两地时差(不妨假设 BBB 的时间比 AAA的时间快,举个例子来说就是 BBB 是中国,AAA 是美国,dd原创 2022-03-29 13:02:05 · 842 阅读 · 0 评论 -
2017年蓝桥杯省赛填空题- 跳蚱蜢
题目题目链接题解BFS(+STL)最少次数,每次跳跃对次数的贡献都是1,完全可以抽象理解为最短路,所以采用BFS可以直接算出最短长度。状态转移存在四种,以题中给的状态为例,可以选择2跳到空处、1跳到空处、7跳到空处或8跳到空处。标记一下遇到过的状态,不要再加入队列中了。代码#include<bits/stdc++.h>#define PIV pair <int, vector <int> >using namespace std;int ans原创 2022-03-28 11:45:41 · 270 阅读 · 1 评论 -
2018年蓝桥杯省赛-全球变暖
题目题目链接题解DFS。比较基础,考查的是DFS判连通。二维空间DFS判连通模板代码#include<bits/stdc++.h>using namespace std;const int N = 1010;int n, idx;string a[N];int id[N][N]; // (i,j)属于第几块陆地int vis[N][N]; // 判断(i,j)这块地是否已经被淹没 int dir[2][4] = {-1, 1, 0, 0, 0, 0, -1,原创 2022-03-19 14:40:46 · 613 阅读 · 0 评论 -
2021蓝桥杯模拟赛-受伤的皇后
题目题目链接题解DFS。八皇后问题改编而已,加入判断左上三格内和右上三格内是否存在皇后。代码#include<bits/stdc++.h>using namespace std;int n, ans;int col[15], vis[15][15];bool check (int x, int y) { int tx = x, ty = y, cnt = 0; while (tx >= 0 && ty >= 0 && cn原创 2022-03-18 21:18:10 · 543 阅读 · 1 评论 -
2021蓝桥杯模拟赛-删除字符
题目题目链接题解贪心。贪心思路:将整个字符串视为若干段降序排列的子串,即从左边开始向右遍历,遇到逆序的就删除,再对新的串从头遍历找逆序,不停地重复整个过程是为了保证删除的尽可能靠前(贪心),如果整个字符串都顺序了,但是还要删,那么就从后面开始删,保留前面小的。代码#include<bits/stdc++.h>using namespace std;int main(){ string s; int t; cin >> s; cin >&g原创 2022-03-18 20:13:19 · 666 阅读 · 0 评论 -
2012年蓝桥杯省赛-汉诺塔
题目题目链接题解题目本身很简单,但是我想提醒几点:会推导出结论 2n−12^n-12n−1;特殊的输出方式.对于汉诺塔问题,存在递推公式:f(n)=2f(n−1)+1f(n)=2f(n-1)+1f(n)=2f(n−1)+1f(n)+1=2f(n−1)+2 f(n)+1f(n−1)+1=2 f(n)+1=2f(n-1)+2 \\ \space \\\frac{f(n)+1}{f(n-1)+1} = 2 \\ \space \\f(n)+1=2f(n−1)+2&nb原创 2022-03-16 21:53:34 · 360 阅读 · 0 评论 -
2018年蓝桥杯C/C++B组国赛-激光样式
题目题目链接题解动态规划,或者找规律。找规律的话是斐波那契数列。动态规划的话也很简单,dp[i][0/1]表示前i个灯,第i个灯开或不开的方案数,转移方程为dp[i][0] = dp[i-1][0] + dp[i-1][1]、dp[i][1] = dp[i-1][0],最后输出dp[30][0] + dp[30][1]。代码#include<bits/stdc++.h>using namespace std;int dp[40][2]; // dp[i][0/1] 表示开原创 2022-03-16 18:42:04 · 689 阅读 · 0 评论 -
蓝桥杯2017初赛-方格分割
题目题目链接题解思维。以(3,3)处的交点为起点(索引从0开始,注意是交点,不是格子)向四个方向前进,到达的点要进行标记,同时也向相对的方向前进,也进行标记,直到遇到边界停止前进,计数,最后答案除以4。绿色和蓝色轨迹是按照相反的方向前进得到的。除以4是因为最终达到边界上下左右存在四种对称的情况,所以除以4。额外说几点:拿到这个题,我的思路是直接同时从左上角的格子和右下角的格子dfs,当全部格子都被标记,且该行走方案的上下对称、左右对称、中心对称等方案都没出现过时,统计该方案。最终输出原创 2022-03-14 11:35:45 · 514 阅读 · 0 评论 -
2017年蓝桥杯省赛-承压计算
题目题目链接题解动态规划。f[i][j]表示第i行第j列承受的重量(含第i行第j列物品的重量)转移方程:f[i][j] = f[i-1][j]/2 + f[i-1][j-1]/2,即左肩物品重量的一半+右肩物品重量的一半+自身重量,如果左肩或右肩没有物品,则相当于扛着重量为0的物品。最后根据比例算出最重称重显示多少即可。又是思考如何处理浮点数想了半天,最后发现只要改个double就行。代码 7原创 2022-03-11 12:58:04 · 264 阅读 · 0 评论 -
2019年蓝桥杯省赛-迷宫
题目题目链接题解BFS。BFS模板,但是我做错了。我的做法是将到达终点的全部路径都加入到一个vector中,最后对vector排序,输出第一个字符串即可。但是这样做是错误的,准确的说是不一定对。正确的做法是对于每一个位置都按照“DLRU”的顺序遍历,因为DLRU的字典序最小,先遍历字典序小的方向,只要到达终点,那么一定就是字典序最小的路径。为什么我的做法不对呢?对于这个上下对称的两条道路而言,到达终点的总步数是相同的,要求字典序最小,那么肯定选下面的路径,因为下面的路径在两条路分叉的原创 2022-03-11 11:08:58 · 739 阅读 · 0 评论 -
2019年蓝桥杯省赛-数的分解
题目题目链接题解DFS。一定看清要求。3 个不同正整数正整数中不能包括2和4满足加法交换律的算式属于一种情况代码#include<bits/stdc++.h>using namespace std;const int N = 2019; int ans = 0;bool check (int x) { while (x) { if (x % 10 == 2 || x % 10 == 4) return false; x /= 10; } re原创 2022-03-11 09:46:42 · 254 阅读 · 0 评论 -
2021蓝桥杯模拟赛-跳跃
题目题目链接题解动态规划。算是比较基础的状态方程和状态定义,但是难点在于处理负权重的情况。代码#include<bits/stdc++.h>using namespace std;const int N = 1100;int f[N][N], w[N][N], n, m;int dir[2][9] = {-1, -2, -3, 0, -1, -2, 0, -1, 0, 0, 0, 0, -1, -1, -1, -2, -2, -3};int main(原创 2022-03-11 09:15:31 · 617 阅读 · 0 评论 -
2020年蓝桥杯C++B组省赛-七段码
题目题目链接题解DFS + 并查集。哇,不得不说两年前的我确实比现在强,这题是我当年比赛的时候遇到的,当时居然想出来了,现在根本不会,JR老矣,尚能AC否。用 1 ~ 7 来代表 a ~ g;若某两个二极管相邻,那么就在它们之间连一条边;先用 dfs 枚举出二极管的所有亮灭情况;再用 并查集 判断是否只有一个连通块.代码#include<bits/stdc++.h>using namespace std;int vis[10], fa[10], e[10][10原创 2022-03-10 21:31:14 · 386 阅读 · 0 评论 -
2016年蓝桥杯省赛C/C++ A组-四平方和
题目题目链接题解暴力枚举。(3s内)虽然是暴力枚举,但是只要枚举三个数即可,第四个数进行判断!!否则无法AC。说实话我忘记这个技巧了,强化一下记忆。代码#include<bits/stdc++.h>using namespace std;const int N = 1e6+10;int n;int main(){ cin >> n; int nn = sqrt(n); for (int i = 0;i <= nn;i ++) for (原创 2022-03-10 19:36:52 · 249 阅读 · 0 评论 -
2016年蓝桥杯省赛C/C++ A组-寒假作业
题目现在小学的数学题目也不是那么好玩的。看看这个寒假作业:□ + □ = □□ - □ = □□ × □ = □□ ÷ □ = □每个方块代表1~13中的某一个数字,但不能重复。比如:6 + 7 = 139 - 8 = 13 * 4 = 1210 / 2 = 5以及:7 + 6 = 139 - 8 = 13 * 4 = 1210 / 2 = 5就算两种解法。(加法,乘法交换律后算不同的方案)你一共找到了多少种方案?请填写表示方案数目的整数。注意:你提交的应该是一个整原创 2022-03-10 11:28:30 · 271 阅读 · 0 评论 -
2020年蓝桥杯省赛-排序
题目题目链接题解对于冒泡排序,拥有N个字母的字符串,最多需要交换N*(N-1)/2次(完全乱序的情况)。当N=15时,最多交换105次,所以要满足100次交换所需最短的字符串有15个字母。要求字典序最小,取前15个字母a~o.前15个字母交换105次得到完全逆序的字符串为onmlkjihgfedcba,减去5次交换次数即可。要求字典序最小,将j提到字符串最前面即可,结果为jonmlkihgfedcba。我一直在使用冒泡排序的方式进行五次排序操作,输出结果,虽然满足逆序数为100,但是不满足字原创 2022-03-09 14:40:48 · 455 阅读 · 1 评论 -
蓝桥杯2021年第十二届真题-数字三角形
题目题目链接题解动态规划重点是如何分析“向左下走的次数与向右下走的次数相差不能超过 1”。这句话保证了从山顶走到山底,如果高度为奇数,则一定落在最中间的位置,如果高度为偶数,则一定落在中间的两个位置。即假设高度为NNN,每一行、列从索引0开始。如果NNN为奇数,则最后一定是到达(N−1,N/2)(N-1, N/2)(N−1,N/2);如果NNN为偶数,则最后一定是到达(N−1,N/2−1)(N-1, N/2-1)(N−1,N/2−1)或(N−1,N/2)(N-1, N/2)(N−1,N/2)。原创 2022-03-09 10:54:42 · 332 阅读 · 0 评论 -
蓝桥杯2021年第十二届真题第一场-砝码称重
题目题目链接题解动态规划。状态定义:dp[i][j]表示前i个砝码是否能称出重量为j的物品。状态转移:对于第i个砝码,选和不选两种情况;对于选又可以分为放在左边和放在右边。看样例,存在加和减的情况,也就是放在左边和右边的情况。我们规定放在左边用加表示,放在右边用减表示。那么第i个砝码的全部情况为第i个砝码不放、放左边或放右边。对于重量为j的物品,如果不放第i个砝码,则dp[i][j] |= dp[i-1][j],即若用i-1个砝码可以称出j,那么用i个砝码肯定也行;如果将第i个砝码放在左边(原创 2022-03-08 13:01:51 · 640 阅读 · 0 评论 -
蓝桥杯2021年第十二届真题第一场-时间显示
题目题目链接题解就是考查取模运算???我是FW,居然用了牛刀,我是FW啊。(而且我居然以为一秒等于一百毫秒)因为时、分、秒、毫秒之间的换算关系是不随着年月日的不同而变化的,所以直接整除就可以了。可以理解为时分之间为60进制进位关系,分秒之间为60进制进位关系,秒毫秒之间为1000进制进位关系,类比计算100的百分位、十分位和个位,就是利用整除和取模进行计算。代码我的代码#include<bits/stdc++.h>using namespace std;typedef原创 2022-03-07 22:23:00 · 251 阅读 · 0 评论 -
蓝桥杯2021年第十二届真题第二场-整数分解
题目【问题描述】将 3 分解成两个正整数的和,有两种分解方法,分别是 3 = 1 + 2 和3 = 2 + 1。注意顺序不同算不同的方法。将 5 分解成三个正整数的和,有 6 种分解方法,它们是 1+1+3 = 1+2+2 =1 + 3 + 1 = 2 + 1 + 2 = 2 + 2 + 1 = 3 + 1 + 1。请问,将 2021 分解成五个正整数的和,有多少种分解方法?【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的原创 2022-03-07 11:37:34 · 894 阅读 · 0 评论 -
蓝桥杯2014年第五届真题-六角填数
题目如图所示六角形中,填入1~12的数字。使得每条直线上的数字之和都相同。图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少?请通过浏览器提交答案,不要填写多余的内容。题解全排列,暴力。(当然也可以手算)总共12个数,填好了三个数,还剩九个数。(看到 9 我就想全排啊!!!)规定从左到右,从上到下每行的空缺位置的索引从0开始增加,如下图:索引为3处的值就是我们要填写的值。我将剩下的九个值进行全排列,对于每一种排列方式,索引为0对应的值就表示在0处填上该值,索引为1对原创 2022-03-06 17:00:30 · 435 阅读 · 0 评论 -
蓝桥杯2015年第六届真题-手链样式
题目小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙。他想用它们串成一圈作为手链,送给女朋友。现在小明想知道:如果考虑手链可以随意转动或翻转,一共可以有多少不同的组合样式呢?请你提交该整数。不要填写任何多余的内容或说明性的文字。题解考点:全排列函数,STL——string对这12颗珠子进行全排,对于每一种排列方式如果已经出现过,则不统计,如果之前没出现过,则统计下来。最后输出统计的个数。注意几点:见到环形,第一件事就是扩充为二倍表示;“虑手链可以随意转动或翻转”,说明逆序匹配和错位匹配都是可原创 2022-03-05 00:21:30 · 448 阅读 · 0 评论 -
蓝桥杯2015年第六届真题-牌型种类
题目小明被劫持到X赌城,被迫与其他3人玩牌。一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。这时,小明脑子里突然冒出一个问题:如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?请填写该整数,不要填写任何多余的内容或说明文字。题解dfs 或 动态规划 都可。每种牌被拿到的可能无非就四种,拿到一张、拿到两张、拿到三张或拿到四张。直接看代码吧,代码比较好理解。代码dfs 代码#include<bits/st原创 2022-03-04 22:16:46 · 489 阅读 · 2 评论 -
Excel推算日期【蓝桥杯省赛第一题】
Excel推算日期 蓝桥杯 技巧 高斯日记原创 2022-03-04 20:58:15 · 800 阅读 · 0 评论 -
蓝桥杯算法提高VIP-合并石子
石子合并原创 2022-01-10 08:54:35 · 296 阅读 · 0 评论 -
蓝桥杯算法提高VIP-队列操作
队列操作原创 2022-01-10 08:21:45 · 362 阅读 · 0 评论 -
蓝桥杯2015年第六届真题-表格计算
题目题目链接题解搜索。可以使用简单的DFS,也可以记忆化,我用的是记忆化。我们在输入的时候就将操作和数值区分开来,分别保存;记忆化搜索函数中,对于遍历的每个位置,判断是否为数值,若为数值那么直接返回数值输出即可;若为操作,则深搜这个操作需要遍历的全部位置。这个题难倒不难,就是麻烦。代码#include<bits/stdc++.h>using namespace std;const int N = 110, INF = 0x3f3f3f3f;int n, m;dou原创 2021-08-17 14:59:11 · 166 阅读 · 0 评论 -
蓝桥杯2014年第五届真题-拼接平方数
题目题目链接题解实现题。题目大意:将一个区间内的数拆成两个数后,若原数、拆得的第一个数和拆得的第一个数均为平方数则输出。直接遍历区间内所有的数可能会超时,因此我们直接取区间内的平方数,只遍历区间内的平方数,时间复杂度会降很多。对于每个遍历到的数,我们将其拆分成两个数,其实就是枚举分割线在哪里,判断得到的两个数是不是平方数,若都是平方数且不为0,则说明遍历到的数是一个可以拆分成两个平方数的平方数,输出。代码#include<bits/stdc++.h>using names原创 2021-08-16 18:33:04 · 384 阅读 · 0 评论 -
蓝桥杯2015年第六届真题-穿越雷区
题目题目链接题解BFS模板题。就在模板题的基础上稍微加了点限制而已。我用的是pair存的,first表示位置,将二维压缩成一维了;second表示步数;要求正负交替,我就采用异或的思想进行,判断下一个位置能否作为落脚点即可。不懂如何实现的二维压缩成一维的同学,评论区问一下,我会回复。代码#include<bits/stdc++.h>using namespace std;typedef pair<int, int> PII;const int N = 1原创 2021-08-16 11:43:44 · 264 阅读 · 0 评论 -
蓝桥杯算法训练VIP-传球游戏
题目题目链接题解动态规划。这个题不能用DFS,用DFS的小朋友趁早放弃,输入数据为30 30时,输出为155117522,这就意味着要是dfs的话,需要搜到底155117522次,光遍历这么多次都会超时更别说深搜了,所以只能动归。也算比较经典的dp之一了。dp[i][j]表示经过j次传球,球最后回到第i个人手中的方案数;转移方程:dp[i][j] = dp[i-1][j-1] + dp[i+1][j-1]含义为:第j次传球要么是第i个人的左手边的人传过来的,要么是右手边,对应着i+1和i原创 2021-08-10 06:48:34 · 437 阅读 · 0 评论 -
蓝桥杯算法训练VIP-黑色星期五
题目题目链接题解日期题。这种题蓝桥杯经常出,填空的话可以看右下角的日历一个个数出来;但这种程序题就必须会写代码了。因为本题只用计算输入这一年的13号为星期五的个数。因此,我们直接统计出从1998年到输入年的总天数(不含输入年),从而进一步就可以得到输入年的一月一日为星期几;遍历输入年的每一个月,每次都根据当前月的一号是星期几,加上个12就是13号对应的星期,判断一下若为星期五则更新答案,同时注意更新下一个月一号是星期几。代码#include<bits/stdc++.h>us原创 2021-08-10 06:17:12 · 522 阅读 · 0 评论 -
蓝桥杯算法训练VIP-集合运算
题目题目链接题解实现题。用map实现,因为集合中的值太大做不了数组索引,因此用map。因为要求差集就还要单独存一下a中的元素,用的vector。代码#include<bits/stdc++.h>using namespace std;int n, s, m, num, ans[2010];map<int,int> cnt;vector<int> a;int main(){ cin>>n; for(int i = 1;i &l原创 2021-08-08 23:52:43 · 155 阅读 · 0 评论 -
蓝桥杯算法训练VIP-阿尔法乘积
题目题目链接题解实现题。按着题目描述实现就行了。很坑的一点是题目规定数据量6e6,但是给的样例是十位数,离谱,开个longlong。代码#include<bits/stdc++.h>using namespace std;typedef long long ll;ll n;int main(){ cin>>n; int cnt = 0; ll num = 0; while(cnt!=1) { num = 1LL; cnt = 0; whi原创 2021-08-08 23:35:14 · 228 阅读 · 0 评论 -
蓝桥杯算法训练VIP-阶乘
题目题目链接题解思维。既然它要取最后一个非零位,那么我们第一时间想到的肯定是取模,只用保留后几位就行了,但是保留后几位呢,对10的多少次方取模合适呢?数据量是100,那么估算一下存在多少个零,能导致末尾零的出现无非就是乘以十的倍数或者最后一个非零位是2的数乘以最后一个非零位是5的数吧,这些情况大概会导致出现十个零以上啊,你说开longlong,十个零是只算十的倍数的情况,加上2 5的情况必然超longlong。因此,这里用了点小技巧,既然末尾出现零了,那么再乘以别的数末尾还是零,存下来也没意义原创 2021-08-08 23:24:04 · 175 阅读 · 0 评论 -
蓝桥杯算法提高VIP-卡勒沃夫之弱水路三千(提高型)
题目题目链接题解拓扑排序(应该也有其他方法,但对于这类题拓扑是通解)。本题解对会拓扑和STL的同学比较友好,不会的同学可以去别的博客学习一下,毕竟总会用到的。在蓝桥杯里,也做过好几个拓扑的题了。如果你会拓扑,那么这个题难在如何对使用合适的STL保存数据和处理数据。详细介绍一下代码中变量的含义后,配合代码注释食用最佳。就是一道拓扑模板题,但是所用数据结构比较麻烦难以理解。map<string, int> id:id[str] = c 表示字符串str的编号为c,在本题中一个名原创 2021-08-08 10:09:43 · 258 阅读 · 0 评论