
c++手撕蓝桥
近来
这个作者很懒,什么都没留下…
展开
-
乘法逆元
原始链接:[https://blog.youkuaiyun.com/weixin_43872728/article/details/99687168?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159788598219725211921229%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=159788598219725211921229&转载 2020-08-20 10:07:32 · 177 阅读 · 1 评论 -
中国剩余定理
原链:[https://blog.youkuaiyun.com/destiny1507/article/details/81751168?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159788511519724839249788%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=159788511519724839249788&biz_id转载 2020-08-20 10:06:36 · 172 阅读 · 2 评论 -
扩展欧几里得
扩展欧几里得算法的最大用法就是用来计算二元一次方程的整数解。**贝祖定理:**即如果a、b是整数,那么一定存在整数x、y使得ax+by=gcd(a,b)。或者说二元一次方程有解的充要条件就是二元一次方程(ax + by = c)有解的充要条件就是 c 是 gcd(a, b) 的整数倍这时候使用扩展欧几里得就可以求得二元一次方程的一个解。当到达递归边界的时候,b==0,a=gcd(a,b) 这时可以观察出来这个式子的一个解:a1+b0=gcd(a,b),x=1,y=0,注意这时的a和b已经不是最开始的原创 2020-08-18 09:29:13 · 270 阅读 · 1 评论 -
暴力+格式转化+板子真题 蓝桥
暴力其实暴力迭代解题也是有技巧的,并不是无脑的,下面总结了几个个人感觉比较有技巧的暴力题。2018乘积尾零如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零?5650 4542 3554 473 946 4114 3871 9073 90 43292758 7949 6113 5659 5245 7432 3051 4434 6704 35949937 1173 6866 3397 4759 7557 3070 2287 1453 98991486 5722 3135 11原创 2020-08-08 10:22:21 · 549 阅读 · 0 评论 -
dp-回溯-搜索-排序及其他算法-蓝桥杯真题算法总结
在这里总结一下从放暑假开始到现在断断续续刷蓝桥杯真题遇到的算法思路,从第十届一直倒着刷到第四届,总的来说蓝桥杯的出题思路在中等题搜索和回溯是一直在变少的,但是搜索的花样变得更多了,而且中等题中的暴力题也一直在减少,关于数论的题也同时在出现,对参赛学生的要求也是变高的,而对于前面的几道题来说同样的花样变得多了起来,越到后面的几届的蓝桥杯的简单题是需要你停下来动脑子想一下才能出思路的,就这样,最后一题暂且不谈。其实最重要的一步是要正确理解题,仔细认真即可。dp在真题当中动态规划还是比较少的,到现在为止只遇原创 2020-08-07 20:55:55 · 877 阅读 · 0 评论 -
c-getline-与-get
转自:https://blog.youkuaiyun.com/qq_38289815/article/details/86681911在做一些需要输入大量数据,且数据比较多样化的算法题的时候,需要了解一下这两个函数的用法。在我们在输入大量数据,从输入流中不断读取数据的时候,一定要建立流的概念,不要出错,比如我们需要输入n行数据的时候,我们首先输入数据n,cin>>n;,这时候一定要注意在流中的第一个字符还是换行符’\n’,这时如果要继续读取数据,我们就需要从输入流中将换行符去除 cin.get()转载 2020-08-07 20:54:54 · 240 阅读 · 0 评论 -
经典回溯数独c++
这道题需要注意的其实是输入,或者说所有需要输入大量数据的题,在进行输入整型时,最好使用char或者sstream先转换一下在间接填入整型数组,这道题在我做的时候就因为这个原因卡死了,还有这道题除了回溯递归,需要注意的点其实是这其实并不同于以往我接触到的回溯题目搜索一个路径,这道题如果写成从上下左右想搜索路径一样的可能会因为某种原因出现如四个已填充的格子围住一个未填数的格子,这样就直接out了,所以说这个题只需要按照从左到右依次填充的,且在填充时进行检查即可你一定听说过“数独”游戏。如【图1.png】,玩原创 2020-08-06 22:17:35 · 404 阅读 · 0 评论 -
c++浮点数相等的判断与浮点数的精度
首先说明浮点数的最小精度设置为eps = 1e-8较为合适,但是最大精度相比较float类型最大精度为7位或者8位,而double类型为15位当我们遇到使用浮点数来进行一些相等的判断且有些误差却是可以忽略的时候可以进行宏定义:const double eps = 1e-8;# define Equ(a,b) (fabs((a)-(b))<eps)//相等// 这么多的括号是为了防止宏定义可能带来的错误#define More(a,b) (((a)-(b))>(eps))//大于#原创 2020-08-03 09:57:45 · 1699 阅读 · 0 评论 -
快速幂与矩阵快速幂简记+模板套用
学习链接:技巧模板快速幂快速幂模板代码:typedef long long ll;ll _power(ll a, int b, int p) { //计算(a^b)%p; ll ans = 1; while (b) { if (b & 1) //等价于b%2,判断b的奇偶性 ans = ans * a % p; //如果为奇数,证明该位为1,需要乘上a a = a * a % p; //计算a^(2^i)转载 2020-08-02 16:59:22 · 118 阅读 · 0 评论 -
蓝桥杯 垒骰子
#include<iostream>using namespace std;int a[36][2];int m, n;int coun = 0;/*将对立面的情况枚举出来*/ //得到骰子的对立面//在这个题里面要注意的就是这个方柱体的概念并不是说的是规则的立方体,而是tnnd赌神他老人家要垒高楼一个一个的往上放,草! int get(int x) { if (x == 1) return 4; if (x == 4) return 1; if (x原创 2020-08-02 16:09:33 · 258 阅读 · 0 评论 -
c/c++ %*s的用法
1、在scanf中使用,则添加了*的部分会被忽略(跳过),不会被参数获取。例如:int a,b;char b[10];scanf("%d%*s",&a,b);输入为:12 abc那么12将会读取到变量a中,但是后面的abc将在读取之后抛弃,不赋予任何变量(例如这里的字符数组b)用*和扫描集配合,可以从输入中只选出需要的内容,而忽略其余的东西。另外,也常用于清空缓冲区。2、在printf中使用,表示用后面的形参替代的位置,实现动态格式输出。例如:printf("%*s", 10原创 2020-08-01 10:58:57 · 3067 阅读 · 0 评论 -
c++sstream 简记-格式转换
最近在准备蓝桥杯的比赛,在历届真题中前面的几道题经常会让我想到使用格式之间的转化比如说将int转化为string使用string的函数来解题更方便些,所以这里一下这里的知识。只讲用法:引入sstream库。在使用之前需要注意的事情:即如果你在使用流对象的时候在数据量比较大的时候最好不要重复构造一个stringstream,这耗费的时间是比较多的,而你在迭代中使用同一个stringstream对象时一定要注意要使用clear方法清空流对象stream。如下:#include <sstream&原创 2020-08-01 08:59:39 · 181 阅读 · 0 评论 -
c++ new malloc memset用法
new 的用法malloc 与 memset函数的用法原创 2020-07-17 19:34:18 · 607 阅读 · 0 评论 -
快排归并排模板(含略详细的填坑注释说明)
#include<iostream>using namespace std;void quicksort(int arr[],int low,int high);void mergesort(int *a,int l,int r,int *b); int main() { int nums[10] = {5,6,3,7,4,2,1,9,8,0}; int b[10]; mergesort(nums,0,9,b); for (int i = 0;i<=9;i++) {原创 2020-07-10 16:10:07 · 109 阅读 · 0 评论 -
(蓝桥杯基础训练题目)纯代码
矩阵乘法:#include<iostream>using namespace std;int main() { int n, m,i,j; cin >> n >> m; int res[30][30],temp[30][30]; for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { cin >> res[i][j]; temp[i][j] = res[i][j];原创 2020-07-07 08:59:55 · 259 阅读 · 0 评论 -
(蓝桥杯基础训练题目)阶乘计算
如下:使用数组进行储存数据#include<iostream>using namespace std;void carry(long long fac[]);void output(long long fac[]);int main() { int n; cin >> n; long long fac[3000] = {0}; fac[0] = 1;//初始化阶乘数组 for (int i = 1; i <= n; i++) { for (int原创 2020-07-07 08:18:32 · 246 阅读 · 0 评论 -
(蓝桥杯基础训练题目)sine之舞(字符串拼接)
如下:#include<iostream>#include<string>using namespace std;string An(int n);int main() { int n,i; string Sn = "",temp,pt = "0"; cin >> n; for (i = 0; i < n; i++) { if (i == n - 1) { Sn = Sn + An(i+1) + "+" + "1"; brea原创 2020-07-07 08:15:06 · 132 阅读 · 0 评论 -
(蓝桥杯基础训练题目)2n皇后(回溯法)
如下:#include <iostream>#include<stdlib.h>#include<vector>#include<math.h>using namespace std;int warray[9] = { 0 }; //用于存放白皇后位置 warray[1] = 2,表示1行2列有白皇后int barray[9] = { 0 }; //用于存放黑皇后位置int vis[9][9] = { 0 }; //用于存放输入矩阵int n原创 2020-07-07 08:13:45 · 172 阅读 · 0 评论 -
(蓝桥杯基础训练题目)01字串
如下:#include<iostream>using namespace std;int main(){ int i, j, k, m, n; for (i = 0; i < 2; i++) { for (j = 0; j < 2; j++) { for (k = 0; k < 2; k++) { for (m = 0; m < 2; m++) { for (n = 0; n < 2; n++) { cout原创 2020-07-07 08:12:44 · 83 阅读 · 0 评论