Cpp-十一届蓝桥杯复习准备
加油!!!!
最终获得省赛二等,再接再厉。
TIM33470348
著有《Python数据分析:从小白到专家》一书。于2021年5月,由电子工业出版社和工信出版集团出版,是一本正式发行的图书,ISBN-13:9787121409233。
这本书能够面市,得感谢这么多年来,在我前进道路上一直陪伴我的亲人和好友,以及赏识我的各位长辈,老师和大佬们。尤其是在我低落的时候,仍然陪伴我,鼓励我,没有放弃我的挚友。
展开
-
蓝桥杯准备——计蒜客·求最大子阵
这是这道题目:给定一个n \times mn×m的矩阵AA,求AA中的一个非空子矩阵,使这个子矩阵中的元素和最大。其中,AA的子矩阵指在AA中行和列均连续的一部分。输入格式输入的第一行包含两个整数n,m(1 \leq n,m \leq 50)n,m(1≤n,m≤50),分别表示矩阵AA的行数和列数。接下来nn行,每行mm个整数,表示矩阵A_{i,j}(-1000 \leq A_{i,j} \leq 1000)Ai,j(−1000≤Ai,j≤1000)。...原创 2020-08-17 13:23:07 · 693 阅读 · 0 评论 -
蓝桥杯准备——动态规划(卡特兰数)
科特兰数可以通过递归得到,公式如下所示: 这道题就是卡特兰数的应用:给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / ...原创 2020-08-06 19:56:01 · 582 阅读 · 0 评论 -
对于leetcode392 判断子序列的思考
给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。示例 1:s = "abc", t = "ahbgdc"返回 true.示例 2:s = "axc", t = ".原创 2020-06-05 16:59:58 · 255 阅读 · 0 评论 -
蓝桥杯复习——动态规划初步
上一次写蓝桥杯总结还是关于广度优先搜索(bfs)的:https://blog.csdn.net/qq_41938259/article/details/104937474现在,蓝桥杯也确定大致日期了,即今年的9、10月份。受到疫情影响,都呆家家里复习,的这一阶段主要是在学习和复习动态规划,这里会列几道基础的动态规划题目作为思路的讲解,主要选自于POJ和leetcode。以前一直不是很懂动态规划,这次经过老师的推荐,我看了中国大学MOOC上的一个讲解视频,确实恍然大悟,懂了不少,看完了有种拨开云雾见青天的原创 2020-05-15 16:00:20 · 860 阅读 · 2 评论 -
2020年4月蓝桥杯模拟赛编程题非官方题解
第五题(水题)给定三个整数 a, b, c,如果一个整数既不是 a 的整数倍也不是 b 的整数倍还不是 c 的整数倍,则这个数称为反倍数。 请问在 1 至 n 中有多少个反倍数。输入格式 输入的第一行包含一个整数 n。 第二行包含三个整数 a, b, c,相邻两个数之间用一个空格分隔。输出格式 输出一行包含一个整数,表示答案。样例输入302 3 6样例...原创 2020-04-22 15:24:39 · 593 阅读 · 0 评论 -
蓝桥杯真题——拉马车(模拟、队列)
题目如下:问题描述小的时候,你玩过纸牌游戏吗?有一种叫做“拉马车”的游戏,规则很简单,却很吸引小朋友。其规则简述如下:假设参加游戏的小朋友是A和B,游戏开始的时候,他们得到的随机的纸牌序列如下:A方:[K, 8, X, K, A, 2, A, 9, 5, A]B方:[2, 7, K, 5, J, 5, Q, 6, K, 4]其中的X表示“10”,我们忽略了纸牌的花色。...原创 2020-03-26 21:10:36 · 766 阅读 · 0 评论 -
蓝桥杯复习——广度优先搜索总结
前些日子在刷DFS(深度优先搜索)的题目,而最近在练习BFS(广度优先搜索),现在我对我这一段时间的学习做个总结。BFS类似于树的层次遍历,而DFS则是类似树的先根遍历。我拍了《算法C实现》这本书的讲解,作为BFS的示意图,看的顺序是从上到下,从左到右,如下所示:BFS会使用到队列这个数据结构,队列是一个先进先出的数据结构。队列是作为一个缓冲区而存在的。先将当前遍历的节点弹出队列,再将所有...原创 2020-03-18 10:23:41 · 488 阅读 · 0 评论 -
牛客网——小乔和小灰灰(栈)
这是第59次牛客练习赛的第一题,我也是太菜了,难度标记为困难就只能通过这一题,难度中等的比赛还说的过去。这是题目:我的想法使用栈,先将键入的字符串逐个推入栈中,然后逐个出栈,满足有XiaoHuiHui或者XiaoQiao的顺序的话就把标记设置为true,当两个标记都为true时说明是Happy反之输出emmAC代码如下:#include<iostream>#incl...原创 2020-03-14 09:50:26 · 320 阅读 · 0 评论 -
2018年蓝桥杯省赛B组第七题:螺旋折线(模拟)
我用了模拟来做,太暴力了。我想着就用模拟,不过别人都有很好的办法。可以看这位博主的:https://blog.csdn.net/qq_34202873/article/details/79835619我倒是侯再仔细看下。题目是这样的:第七题标题:螺旋折线如图p1.png所示的螺旋折线经过平面上所有整点恰好一次。对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点...原创 2020-03-07 12:08:59 · 298 阅读 · 0 评论 -
牛客网————客官这边请(高精度问题,可以AC)
最近再练习高精度问题,这个题目是这样的:这是一道典型的大数问题,可以看到我们要求两个大数相加的结果,大数相加原理可以看这里:https://blog.csdn.net/qq_41938259/article/details/104638833只要稍加修改,主要是格式正确即可,代码如下:#include<iostream>#include<stack>#...原创 2020-03-07 09:40:49 · 294 阅读 · 0 评论 -
大整数相乘算法与2018年蓝桥杯B组第三题“乘积尾零”
大数相乘是为了避免整数超过long long int而上溢出,可以用竖式来模拟,具体算法如下:stack<int> multi(stack<int> a, int b){ stack<int> c; int carry = 0; //反转a得到aa stack<int> aa; while (!a.e...原创 2020-03-05 21:52:11 · 326 阅读 · 0 评论 -
算法笔记__大整数加法和减法(STL实现、stack)以及(String实现)
当C++的long long int类型也无法存放下一个数字的长度了的话,就得使用大数算法。大数算法的原理就是小学学的竖式,例如加法超过十了就要进位,减法减不了了就得向高位借位,原理很简单,代码如下,使用stl实现的,先减法再加法:#include<iostream>#include<stack>#include<sstream>#include...原创 2020-03-03 18:57:21 · 513 阅读 · 0 评论 -
蓝桥杯笔记(迅速判断闰年)
以前不懂都傻西西的写if-else判断,不过有更简单的写法:bool isLeapYear(int year) return (year % 4 == 0 && y % 100 != 0)||(y % 400 == 0);即:被4整除且不被100整除、或者是被400整除的是闰年。...原创 2020-02-27 15:36:06 · 212 阅读 · 0 评论 -
牛客网——A逃脱(可以AC了)
我使用了递归的dfs没有通过,“我的提交里”看到测试用例只有一个,结果是输出超时,估计是递归法使得复杂度陡增,这是题目:虽然0分,我还是保存一下代码供以后参考:#include<iostream>#include<algorithm>#include<cmath>#include<cstring>using namespac...原创 2020-02-22 16:03:01 · 445 阅读 · 0 评论 -
算法笔记_Fibonacci数列
Fibonacci数列主要是了解递归的基本格式,即递归边界+递归式的顺序,请牢记.递归式是F(n)=F(n-1)+F(n-2)(n>=2)代码示例如下:#include<iostream>#include<cstdlib>using namespace std;int F(int n);int main(void){ int n; cin ...原创 2018-07-11 14:48:12 · 228 阅读 · 0 评论 -
算法笔记_进制转换(十六转十)
#include<iostream>#include<cstring>#include<stdlib.h>long long int hashFunc(char s[], int len);using namespace std;int main(void){ long long int ten; char a[9]; cin.get(a, ...原创 2018-05-10 19:02:50 · 284 阅读 · 0 评论 -
算法笔记_进制转换(十转十六)
#include<iostream>#include<cstring>static int m = 0;void hashFunc_Two(long long int x);void Print(char a[],int n);using namespace std;int main(void){ long long int g; cin >>...原创 2018-05-10 19:03:26 · 703 阅读 · 0 评论 -
牛客网——贝伦卡斯泰露(栈、队列)(90%通过)
这道题标注是DFS,我正好在练习DFS,就点进去了。但我太菜了,没有看出一点它与DFS的关系,用了队列和栈来做的,题目如下:我的思路是使用一个栈a来存放输入数据,只有顺序一样才可以满足条件,所以使用队列b来判断是否满足“贝伦卡斯泰露“:当队列b的队头和栈a出队的元素一样时,说明重复序列出现,队列b队头元素出队,反之队伍入队。当最后b为空队时说明满足条件输出“Frederica Bernka...原创 2020-02-18 13:36:13 · 306 阅读 · 0 评论 -
算法笔记_全排列与N皇后问题
说明:这里的全排列是按字典序的.以下给出从1到3的全排列代码:#include<iostream>#include<stdlib.h>using namespace std;const int maxn = 11;//P为当前排列,hashTable记录整数x是否已经在P中int p[maxn];// 必须申明为全局 bool hashTable[ma...原创 2018-07-11 21:05:50 · 656 阅读 · 6 评论 -
牛客网——锦标赛(80%通过)(DFS)
没能AC但是通过了80%,使用的是递归的DFS,八成还是因为使用了递归使得复杂度太高,我也只是复习dfs递归的写法,目的也达到了就不改代码一定要它AC了。具体题目如下:我的想法是将选手成绩存放到名为a的vector中,将1到n个升序排序(0是第一个序号,第一个是主人公的分数不用排序),然后两两比较,低分就erase掉,注意之一端是i++而不是i+=2: for (int i = 0;...原创 2020-02-17 13:57:43 · 509 阅读 · 0 评论 -
牛客网——地、颜色、魔法(DFS)
只有75%通过,估计是因为递归调用次数过多导致堆栈溢出。题目如下:这是我的代码,想法是从边缘开始涂色为+号,计算+号个数,结果用总个数减去加号个数作为输出:#include<iostream>#include<algorithm>#include<cstring>using namespace std;bool flag[10000][1...原创 2020-02-15 14:30:46 · 268 阅读 · 0 评论 -
算法笔记__打印素数表(暴力法)
#include<iostream>#include<cmath>using namespace std;//判断n是否为素数bool isPrime(int n){ if (n <= 1)return false; int sqr = (int)sqrt(1.0*n); for (int i = 2; i <= sqr; i++) if...原创 2019-01-11 22:20:07 · 255 阅读 · 0 评论 -
算法笔记_区间贪心
即所谓的区间不相交问题:给出N个开区间(x,y),从中选择尽可能多的开区间,使得这些开区间两两没有交集,问最多找到多少个区间?思路:总选择左端点最大的区间,若左端点一样,就选右端点最小的.给出如下实例代码:#include<iostream>#include<stdlib.h>#include<algorithm>//algorithm意为"算...原创 2018-07-12 20:41:15 · 271 阅读 · 0 评论 -
算法笔记_快速幂
快速幂算法基于二分法思想已下给出快速幂递归写法//求a^b%m,递归写法long long binaryPow(long long a, long long b, long long m){ if (b == 0) return 1;//如果b为0,那么a^0=1 //b为奇数,转化为b-1 if (b & 1) return a * binaryPow(a, ...原创 2018-07-14 16:17:46 · 195 阅读 · 0 评论 -
蓝桥杯练习(最长滑雪道)
【代码】蓝桥杯练习(最长滑雪道)原创 2020-01-16 22:17:40 · 1059 阅读 · 2 评论 -
蓝桥杯练习——最大路径值
题目如下:动态规划看这:https://blog.csdn.net/zw6161080123/article/details/80639932主要是使用了DFS来找到所有满足的路径,用动态规划找到最长路径,代码如下:#include <iostream>#include <stdio.h>#include <algorithm>#inc...原创 2020-01-20 17:37:42 · 382 阅读 · 0 评论 -
蓝桥杯练习——大臣的旅费
题目如下:说是说求路费,但是实际上还是求最短路径值,可以使用BFS,这是一个递归算法:#include<iostream>#include<string.h>#define MAXSIZE 1003using namespace std;int map[MAXSIZE][MAXSIZE] ;//定义邻阶矩阵int km, n, sum, maxsu...原创 2020-01-23 08:30:03 · 533 阅读 · 0 评论 -
再谈DFS(深度优先遍历)(集合求所有子集问题、求最长路径问题、如何保存最优化问题的结果)
DFS 是“深度优先遍历”或“深度优先搜索”的英文缩写。一开始是用于解决“迷宫问题”,或者说是“连通性问题”所产生的,用于判断两点间是否可达。对于求最短路径一般用的是BFS(广度优先搜索),不过现在从DFS衍生出了好几种问题的解决,比如题中给出的“集合求所有子集问题、”求最长路径问题”、“如何保存最优化问题的结果”这三个问题。首先还是先从经典的迷宫问题引入DFS。要判断u和v是否连通,我们可以...原创 2020-01-23 11:51:46 · 1735 阅读 · 0 评论 -
基础——两个升序的链表合并(使用vector)
具体解释如下:我使用了vector,代码如下#include<iostream>#include<vector>using namespace std;int main(void){ vector<int>a, b,temp; int n, m; cin >> n >> m; a.resize(n); b...原创 2020-01-25 16:12:38 · 249 阅读 · 0 评论