蓝桥杯练习题
这次就不起名字了
这个作者很懒,什么都没留下…
展开
-
状态压缩+DP例题
2021 E回路计数问题描述 蓝桥学院由 21 2121 栋教学楼组成,教学楼编号 1 11 到 21 2121。对于两栋教学楼 a aa 和 b bb,当 a aa 和 b bb 互质时,a aa 和 b bb 之间有一条走廊直接相连,两个方向皆可通行,否则没有直接连接的走廊。 小蓝现在在第一栋教学楼,他想要访问每栋教学楼正好一次,最终回到第一栋教学楼(即走一条哈密尔顿回路),请问他有多少种不同的访问方案?两个访问方案不同是指存在某个i ii,小蓝在两个访问方法中访问完教学楼 i ii 后访原创 2022-03-29 22:00:10 · 204 阅读 · 1 评论 -
蓝桥杯2021年真题
C 货物摆放问题描述小蓝有一个超大的仓库,可以摆放很多货物。 现在,小蓝有 n nn 箱货物要摆放在仓库,每箱货物都是规则的正方体。小蓝规定了长、宽、高三个互相垂直的方向,每箱货物的边都必须严格平行于长、宽、高。 小蓝希望所有的货物最终摆成一个大的立方体。即在长、宽、高的方向上分别堆 L 、 W 、 H L、W、HL、W、H 的货物,满足 n = L × W × H n = L × W × Hn=L×W×H。 给定 n nn,请问有多少种堆放货物的方案满足要求。 例如,当 n = 4 n原创 2022-03-28 22:27:44 · 149 阅读 · 0 评论 -
蓝桥杯2018年真题
第三题:字母阵列题目描述仔细寻找,会发现:在下面的8x8的方阵中,隐藏着字母序列:“LANQIAO”。SLANQIAOZOEXCCGBMOAYWKHIBCCIPLJQSLANQIAORSFWFNYAXIFZVWALCOAIQNAL我们约定: 序列可以水平,垂直,或者是斜向;并且走向不限(实际上就是有一共8种方向)。上图中一共有4个满足要求的串。下面有一个更大的(100x100)的字母方阵。你能算出其中隐藏了多少个“LANQIAO”吗?FOAIQNALWIKEGNICJWAOS原创 2022-03-25 15:32:08 · 571 阅读 · 0 评论 -
蓝桥杯2019年真题
第八题:修改数组题目描述给定一个长度为 N 的数组 A = [A1, A2, · · · AN],数组中有可能有重复出现的整数。现在小明要按以下方法将其修改为没有重复整数的数组。小明会依次修改A2, A3, · · · , AN。当修改 Ai 时,小明会检查 Ai 是否在 A1 ∼ Ai−1 中出现过。如果出现过,则小明会给 Ai 加上 1 ;如果新的 Ai 仍在之前出现过,小明会持续给 Ai 加 1 ,直到 Ai 没有在 A1 ∼ Ai−1 中出现过。当 AN 也经过上述修改之后,显然 A 数原创 2022-03-24 14:57:47 · 52 阅读 · 0 评论 -
快速幂、 完全二叉树的权值(2019)
int fastpow (int base,int pow) { int ans = 1; while(pow) { if(pow&1)//此处等价于if(power%2==1)--奇数 ans *= base; base *= base; pow = pow >> 1;//此处等价于power=power/2 } return ans;}完全二叉树的权值在小明要把相同深度的节点的权值加在一起,他想知道哪个深度的节点权值之和最大?原创 2022-03-21 21:51:41 · 427 阅读 · 0 评论 -
DP 杨老师的照相排列 、矩阵
杨老师的照相排列输入样例:13051 1 1 1 133 2 145 3 3 156 5 4 3 2215 150输出样例:111641581418926089694845#include <cstring>#include <iostream>#include <algorithm>using namespace std;typedef long long LL;const int N = 31;int原创 2022-03-20 14:47:04 · 1200 阅读 · 0 评论 -
DP线性模型:最长上升子序列、最长公共子序列、最长公共上升子序列、天天向上(4个严格递增的子序列个数)
最长上升子序列长度输入73 1 2 1 8 5 6输出4#include <iostream>#include <cstring>using namespace std;const int N = 1010;int n;int dp[N];//dp[i] = dp(K) + 1int a[N];int main(){ cin >> n; for (int i = 1; i <= n; i++) {原创 2022-03-20 10:29:46 · 151 阅读 · 0 评论 -
一维前缀、一维差分、二维前缀和
差分题目:差分输入一个长度为n的整数序列。接下来输入m个操作,每个操作包含三个整数l, r, c,表示将序列中[l, r]之间的每个数加上c。请你输出进行完所有操作后的序列。输入格式第一行包含两个整数n和m。第二行包含n个整数,表示整数序列。接下来m行,每行包含三个整数l,r,c,表示一个操作。输出格式共一行,包含n个整数,表示最终序列。数据范围1≤n,m≤100000,1≤l≤r≤n,−1000≤c≤1000,−1000≤整数序列中元素的值≤1000输入样例:6 31原创 2022-03-19 09:45:36 · 106 阅读 · 0 评论 -
DP 背包问题 、完全背包问题、多重背包问题、二维费用的背包问题、分组背包问题
最长公共子序列长度输入73 1 2 1 8 5 6输出4#include <iostream>#include <cstring>using namespace std;const int N = 1010;int n;int dp[N];//dp[i] = dp(K) + 1int a[N];int main(){ cin >> n; for (int i = 1; i <= n; i++) {原创 2022-03-17 18:34:49 · 226 阅读 · 0 评论 -
BFS 走迷宫问题、迷宫最短路(最短步数并打印出来)
走迷宫问题给定一个nm大小的迷宫,其中代表不可通过的墙壁,而.代表平地,S代表起点,T代表终点。移动过程中,如果当前位置是(x,y)(下标从0开始),且每次只能前往上下左右四个位置的平地。求从起点S到达终点T的最少步数。输入5 5…....s..**.…t2 2 4 3输出11void bfs(){ queue<int> q;//一般用stl库中的queue来实现队列比较方便 q.push(起点S);//将初始状态入队 标记初始状态已入队。 while(!q原创 2022-03-12 21:21:43 · 1022 阅读 · 0 评论 -
基础知识 最小公倍数 最大公约数
#include <iostream> #include <stdio.h>#include <string>#include <string.h>#include <algorithm>#include<ctype.h>#include <vector>#define maxn 1000using namespace std;//求 a,b最大公约数,int gcd(int a, int b)//6 4原创 2022-03-06 14:47:09 · 118 阅读 · 0 评论 -
蓝桥杯 数的潜能 (快速幂)
问题描述将一个数N分为多个正整数之和,即N=a1+a2+a3+…+ak,定义M=a1a2a3*…*ak为N的潜能。 给定N,求它的潜能M。 由于M可能过大,只需求M对5218取模的余数。输入格式输入共一行,为一个正整数N。输出格式输出共一行,为N的潜能M对5218取模的余数。样例输入10样例输出36数据规模和约定1<=N<10^18#include <iostream> #include <stdio.h>#include <st原创 2022-03-06 10:31:38 · 345 阅读 · 0 评论 -
DFS搜索 n皇后问题、 牌型总数 、全球变暖、分配口罩
输入 8输出92#include <iostream> #include <stdio.h>#include <string>#include <string.h>#include <algorithm>#include<ctype.h>#include <vector>#define maxn 1000using namespace std;#include<bits/stdc++.h>原创 2022-03-04 20:46:08 · 151 阅读 · 0 评论 -
链表 损坏的键盘
问题描述在显示屏上盲打一段文字,在这过程中由于键盘的问题,Home键与end键会自动按下,显有一段文本,其中‘[’表示Home键按下,‘]’表示End键按下,求出显示屏上的文字排序示例输入This_is_a_[Beiju]_text[[]][][]Happy_Birthday_to_Tsinghua_University示例输出BeijuThis_is_a__textHappy_Birthday_to_Tsinghua_University#include <stdio.h>#原创 2022-03-03 16:32:03 · 60 阅读 · 0 评论 -
蓝桥杯 真题 救济金发放、分糖果、刽子手游戏
题目n(n<20)个人站成一圈,逆时针编号为1~n。有两个官员,A从1开始逆时针数,B从n开始顺时针数。在每一轮中,官员A数k个就停下来,官员B数m个就停下来(注意有可能两个官员停在同一个人上)。接下来被官员选中的人(1个或者2个)离开队伍。输入n,k,m输出每轮里被选中的人的编号(如果有两个人,先输出被A选中的)。例如,n=10,k=4,m=3,输出为4 8, 9 5, 3 1, 2 6, 10, 7。注意:输出的每个数应当恰好占3列。输入:10 4 3输出:_ _ 4_ _ 8,_ _原创 2022-02-26 20:19:41 · 175 阅读 · 0 评论 -
分解质因数
样例输入3 10样例输出3=34=225=56=237=78=2229=3310=25#include <iostream> #include <stdio.h>#include <string>#include <string.h>#include <algorithm>#include<ctype.h>#include<math.h>#define maxn 100010using原创 2022-02-25 16:52:24 · 336 阅读 · 0 评论 -
芯片测试 l
#include <iostream> #include <stdio.h>#include <string>#include <string.h>#include <algorithm>#include<ctype.h>#define maxn 250using namespace std;int main() {int n,a[21][21];int b[20];memset(b,0,sizeof(b));转载 2022-02-24 15:35:03 · 336 阅读 · 0 评论 -
龟兔赛跑 数组 预测
#include <iostream> #include <stdio.h>#include <string>#include <string.h>#include <algorithm>#include<ctype.h>#define maxn 250using namespace std;int main() {// 一秒一秒的研究 与数学思维不同; int v1,v2,t,s,l;cin>>v1&原创 2022-02-24 11:13:04 · 210 阅读 · 0 评论 -
最小周期串
例如abcabcabc—3abacadabacad----6#include <iostream> #include <stdio.h>#include <string>#include <string.h>#include <algorithm>#include<ctype.h>#define maxn 105using namespace std;int main() { char str[101]; s原创 2022-02-22 13:22:31 · 252 阅读 · 0 评论 -
十六进制 转 八进制
十六转八#include <iostream>#include <stdlib.h>#include <stdio.h>#include <algorithm>#define pi 3.14159265358979323using namespace std;int main(){ int n; cin>>n; string s1,s2;for(int i=0;i<n;i++) { cin>>s1; s2原创 2022-02-22 09:31:59 · 342 阅读 · 0 评论 -
计算分子量--- isdigit()函数
题目例如C6H5OH —94.108g/mol#include <iostream> #include <stdio.h>#include <string>#include <string.h>#include <algorithm>#include<ctype.h>#define maxn 105using namespace std;char a[10005];int main(){ float原创 2022-02-22 09:27:48 · 342 阅读 · 0 评论 -
蓝桥杯 基础训练--阶乘计算(高精度)、高精度加法
蓝桥杯 基础训练--阶乘计算(高精度)题目代码及注释核心算法理解题目问题描述 输入一个正整数n,输出n!的值。 其中n!=123*…*n。算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。 将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。 首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值。输入格式 输入包含一个正整数n,n原创 2022-01-27 23:02:09 · 800 阅读 · 0 评论 -
蓝桥杯 键盘错位 常量数组
题目描述一个常见的打字错误是将手放在键盘上正确位置的右边一行。Q被输入为W,J被输入为K,以此类推。你将解码以这种方式输入的消息。输入描述输入由几行文本组成。每行可以包含数字、空格、大写字母(Q、A、Z除外)或上面所示的标点符号[反引号(’)除外]。用单词[Tab, BackSp, Control, etc]标记的键不在输入中表示。输出描述您必须用上面所示的QWERTY键盘上紧邻其左边的一个字母或标点符号来替换每个字母或标点符号。输入中的空格应该在输出中回显。输入样例:O S, GOMR YP原创 2022-02-21 19:43:17 · 256 阅读 · 0 评论 -
蓝桥杯 竖式问题 题目理解
#include<stdio.h>#include<string.h>int main(){ int count = 0; char s[20], buf[99]; scanf("%s", s); int abc,de,i; for(abc=100;abc<=999;abc++) for (de = 10; de <= 99; de++) { int x = abc * (de % 10);//得到“abc*e” ,即“-----”下方第.原创 2022-02-21 19:16:56 · 58 阅读 · 0 评论 -
蛇形填数 二维数组
例如 n=4 #include <iostream>#include <stdlib.h>#include <stdio.h>#include <algorithm>#include <string.h>#define maxn 20using namespace std; int a[maxn][maxn]; int main(){ int n,x,y,tot=1;//n正方形大小 x,y二维数组的坐标 tot填原创 2022-02-21 09:17:44 · 302 阅读 · 0 评论