算法竞赛
啥也不会,慢慢积累吧。
九霄云客
一个脚踏实地的梦想家
展开
-
操作格子---算法集
算法题:操作格子原创 2023-08-15 09:16:59 · 369 阅读 · 0 评论 -
复习题及新题训练13---星期几
定位:算法集/蓝桥杯训练营2——星期几属性:日期问题难度:入门代码://#include<bits/stdc++.h>#include<iostream>#include<cstdio>using namespace std;int ans,w;int main(){ w=7; for(int i=1950;i<2012;i++){ if(i%400==0||(i%4==0&&i%100!=0)){ w.原创 2020-09-16 11:19:08 · 49 阅读 · 0 评论 -
复习题及新题训练6---第几天
定位:2018第九届蓝桥杯省赛C/C++B组第一题属性:日期问题难度:入门代码://#include<bits/stdc++.h>#include<iostream>using namespace std; int y1,m1,d1,y2,m2,d2,ans;int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};void isru(int y){ if(y%400==0||(y%4==0&&y%.原创 2020-09-15 12:42:41 · 47 阅读 · 0 评论 -
复习题及新题训练5---快速幂
定位:2020第十一届蓝桥杯省赛C/C++B组第一题属性:快速幂难度:代码://#include<bits/stdc++.h>#include <iostream>using namespace std;long long FastPower(long long base,long long power){ long long result=1; while(power>0){ if(power&1){//power%2==1; resu.原创 2020-09-14 17:34:32 · 49 阅读 · 0 评论 -
复习题及新题训练12---第n阶台阶
定位:算法集——第n阶台阶属性:递归难度:破壳代码://上台阶//#include<bits/stdc++.h>#include<iostream>using namespace std;int total;int sum(int step,int num,int n){ if(step>n){ return 0; } if(step==n&&num%2==0){ total++; return 0; } sum(st.原创 2020-09-14 17:19:21 · 45 阅读 · 0 评论 -
复习题及新题训练4---十进制转二进制
定位:算法集-题1属性:普通递归难度:破壳代码://#include<bits/stdc++.h> #include<iostream> using namespace std; int n; int fun(int nn){ if(nn<2){ return nn; } return fun(nn/2)*10+nn%2; } int main(){ cin>>n; cout<<fun(n); re.原创 2020-09-14 16:35:42 · 62 阅读 · 0 评论 -
复习题及新题训练11---迷宫
定位:算法笔记—迷宫(路径输出)属性:难度:代码:在这里插入代码片感悟:归档:元魂:雷神兽原创 2020-08-28 16:59:25 · 52 阅读 · 0 评论 -
复习题及新题训练10---x皇后问题
定位:C语言网 题目2047属性:dfs+回溯/全排列函数难度:初级代码:在这里插入代码片//#include<bits/stdc++.h>#include<iostream>#include<cstdio>#include<cmath>#include<algorithm>using namespace std;int n,a[15],p;int main(){ cin>>n; for(int i=1.原创 2020-08-27 11:27:23 · 67 阅读 · 0 评论 -
复习题及新题训练9---全排列(dfs+回溯)
定位:中阶算法—递归(4)属性:dfs+回溯难度:入门代码://#include<bits/stdc++.h>#include<iostream>#include<cstdio>using namespace std;int n,a[15];bool vis[15];void dfs(int x){ if(x>n){ for(int i=1;i<=n;i++){ printf("%d ",a[i]); } print.原创 2020-08-26 23:28:06 · 46 阅读 · 0 评论 -
复习题及新题训练8---全排列(调用函数)
定位:中阶算法—递归(4)属性:全排列函数难度:入门代码://#include<bits/stdc++.h>#include<iostream>#include<cstdio>#include<algorithm>using namespace std;int n,i,a[10];int main(){ cin>>n; for(i=1;i<=n;i++){ a[i]=i; } do{ for(i=1;i.原创 2020-08-26 18:18:27 · 59 阅读 · 0 评论 -
复习题及新题训练7---杨辉三角形
定位:C语言网 题目1482属性:模拟难度:破壳代码://#include<bits/stdc++.h>#include<iostream>#include<cstdio>using namespace std;const int N=50;int a[N][N],n,x;int main(){ cin>>n; for(int i=0;i<=n;i++){ a[i][0]=1,a[i][i]=1; for(int j=.原创 2020-08-26 16:17:15 · 108 阅读 · 0 评论 -
复习题及新题训练3---哥德巴赫猜想
定位:《趣学算法》P19属性:素数问题难度:入门代码://#include<bits/stdc++.h>#include<iostream>#include<cstdio>using namespace std;const int N=5000;int n,p,q,i,j;int prime[N];void isprime(int nnn){ for(i=2;i<=nnn;i++){ for(j=i*i;j<=nnn;j+=i).原创 2020-08-25 14:31:45 · 67 阅读 · 0 评论 -
复习题及新题训练2---fibonacci
定位:2019第十届蓝桥杯省赛C/C++B组第三题属性:普通经典递推难度:破壳代码://#include<bits/stdc++.h>#include<iostream>using namespace std;int main(){ int n,a1,a2,a3,a4; cin>>n; if(n==1||n==2||n==3){ cout<<1; }else if(n==4){ cout<<3; }else{ .原创 2020-08-25 14:05:54 · 46 阅读 · 0 评论 -
复习题及新题训练1---汉诺塔
定位:C语言网题库 2056属性:普通经典递归难度:破壳题代码:在这里插入代码片感悟:归档:处理中原创 2020-08-25 09:16:27 · 54 阅读 · 0 评论 -
第十届蓝桥杯省赛的分析
组队这题不需要码代码的,但在选队员的时候,一定要仔细,如果细心一点,这题是可以拿下的。(+5)年号字串这题需要我们在考场上保持很安静的内心,然后仔细的一点一点分析,但他的规律还是好找的。(+5)数列求值这已经是第三题了,但他只是我们常见的fibonacci序列的变式,求解的方法是一样的,大胆一点,套用原来求解fibonacci序列的方法就可以了。(+10)数的分解这是第四题了,但思路很好找,就是普通的枚举,把条件都找齐了就行。(+10)迷宫这是考bfs()模板,去年才考..原创 2020-10-16 19:30:13 · 312 阅读 · 0 评论 -
第十一届蓝桥杯省赛的分析(7月赛事)
这份分析我们放在第一个来做,9月赛事估计很大概率会参照7月赛事的规律来命题,这份分析对我们来说真的特别特别重要!跑步训练这是第一题,,考试的时候一定要胆子大,不要害怕,我在前面的分析里也说过,像第一个填空,可以通过观察或者计算得出结果的,不要慌,对周边的环境(毕竟是都在敲代码,环境肯定是哒哒哒。。。特别是有些人坐你的前后,可能一直这样哒哒哒!)和自己的外在粗略一点,对自己的内心要细致一点。如果能冷静下来,慢慢审题的话,应该可以拿下的,不要粗心!(+5)纪念日这是第二题,我现在知道用计算器了,原创 2020-10-16 18:41:30 · 417 阅读 · 0 评论 -
蓝桥杯省赛前的一些想法和补救
我的算法学习到这里也该落下帷幕了,在看不到希望的日子里一点一点坚持了大半年的样子,可能也不一定有个好结果,但只要是努力了,咋就没差!我的算法学习之路大概是先从一些简单的模拟开始,然后开始学会了循环枚举,以及sort+cmp这样的结构,最近还掌握了全排列函数(对于字符或者数字的组合问题超好用~)。这些是我已经掌握的差不多的东西,对比标准的话,我确实缺少很多,例如基础的递归,dfs,bfs,动态规划等等。现如今,我还能补救吗,o(╥﹏╥)o不管,这次参赛结果如何,我心里其实也松了一口气,就像一块石头,他终于落原创 2020-10-16 12:10:20 · 475 阅读 · 0 评论 -
蓝桥秘密冲刺计划(10.13)走方格
定位:2020年第十一届蓝桥杯省赛C/C++ B组试题H(7月试题)原题:数据范围:1≤n,m≤30输入样例2:20 21输出样例2:92378属性:动态规划难度:初级独白:过两天就要考试了鸭,不多说了,自己体会吧~代码://#include<bits/stdc++.h> #include<iostream>using namespace std;int n, m;int f[35][35];int main(){ cin>>n&.原创 2020-10-15 07:59:40 · 215 阅读 · 0 评论 -
蓝桥秘密冲刺计划(10.13)解码
定位:2020年第十一届蓝桥杯省赛C/C++ B组试题G(7月试题)原题:属性:字符读入+模拟难度:破壳独白:这题我们采用边读取字符边模拟判断的策略来做,即用这样的while循环:while((ch=getchar())!='\n')来解决问题。读取到的字符如果不是数字字符,那便直接输出;若是数字字符,那我们便输出数字字符前的字符,重复次数依据数字字符的数值大小减1,这里可以再套用一个while循环来解。总的来说这题比较简单,基础好一点的,基本没问题。代码://#include<.原创 2020-10-13 21:47:41 · 188 阅读 · 0 评论 -
蓝桥秘密冲刺计划(10.13)完全二叉树的权值
定位:2019年第十届蓝桥杯省赛C/C++ B组试题G原题:属性:模拟难度:入门独白:这题看起来是在考二叉树,但其实只是用到了二叉树的概念。我们首先按照题干,设置一个数组,将数据存入数组,然后按照二叉树的性质即x深度的节点和为pow(2,x)-1来作为while循环的判断条件。如果x深度的节点和小于节点总数,那么我们可以将其分层计数,考虑到不一定是满二叉树,所以我们必须将最后一层罗列出来单独计数,最后计数得到的最大值便是最大层。我们这里要注意一个小细节,那就是while循环中的条件pow(.原创 2020-10-13 19:04:41 · 207 阅读 · 0 评论 -
蓝桥秘密冲刺计划(10.12)螺旋折线
定位:2018年第九届蓝桥杯省赛C/C++ B组试题G原题:螺旋折线如图所示的螺旋折线经过平面上所有整点恰好一次。对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度。例如dis(0, 1)=3, dis(-2, -1)=9给出整点坐标(X, Y),你能计算出dis(X, Y)吗?【输入格式】X和Y对于40%的数据,-1000 <= X, Y <= 1000对于70%的数据,-100000 <= X, Y <..原创 2020-10-13 10:26:06 · 152 阅读 · 0 评论 -
蓝桥秘密冲刺计划(10.11)日期问题
定位:2017年第八届蓝桥杯省赛C/C++ B组试题G原题:日期问题小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在1960年1月1日至2059年12月31日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。比如02/03/04,可能是2002年03月04日、2004年02月03日或2004年03月02日。给出一个文献上的日期.原创 2020-10-11 23:25:27 · 187 阅读 · 0 评论 -
蓝桥秘密冲刺计划(10.10)剪邮票
定位:2016年第六届蓝桥杯省赛C/C++ B组试题G原题:剪邮票如【图1】, 有12张连在一起的12生肖的邮票。现在你要从中剪下5张来,要求必须是连着的。(仅仅连接一个角不算相连)比如,【图2】,【图3】中,粉红色所示部分就是合格的剪取。请你计算,一共有多少种不同的剪取方法。请填写表示方案数目的整数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。属性:全排列函数+dfs模拟难度:中级独白:这题有点折腾人,不容易做对的,需要有实实在在的基本功才行。首先我们.原创 2020-10-11 15:09:51 · 197 阅读 · 0 评论 -
蓝桥秘密冲刺计划(10.10)牌型种类
定位:2015年第六届蓝桥杯省赛C/C++ B组试题G原题:牌型种类小明被劫持到X赌城,被迫与其他3人玩牌。一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。这时,小明脑子里突然冒出一个问题:如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?请填写该整数,不要填写任何多余的内容或说明文字。属性:枚举难度:破壳独白:这里我们虽然第一感觉是做一个全排列的模拟,但尝试过后发现这里不适合。首先我们全排列1~52就已经爆炸了.原创 2020-10-10 18:26:11 · 184 阅读 · 0 评论 -
蓝桥秘密冲刺计划(10.9)六角填数
定位:2014年第五届蓝桥杯省赛C/C++ B组试题G原题:六角填数如图所示的六角形中,填入1~12的数字。使得每条直线上的数字之和都相同。图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少?请通过浏览器提交答案,不要填写多余的内容。属性:全排列函数难度:入门独白:这题看起来有点新奇,然后可能一时半会想不到如何模拟,然后尝试自己猜填数字,运气好还好,不好的话就走上了不归路。。。然后可能我们第一想到的思路还是枚举,不是说枚举不行,而是我们一旦选择了枚举这条路,那么接下来的.原创 2020-10-10 14:07:54 · 297 阅读 · 0 评论 -
蓝桥秘密冲刺计划(10.8)错误票据
定位:2013年第四届蓝桥杯省赛C/C++ B组试题G原题:错误票据某涉密单位下发了某种票据,并要在年终全部收回。每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。你的任务是通过编程,找出断号的ID和重号的ID。假设断号不可能发生在最大和最小号。要求程序首先输入一个整数N(N<100)表示后面数据行数。接着读入N行数据。每行数据长度不等,是用空格分开的若干个(.原创 2020-10-09 22:46:08 · 247 阅读 · 0 评论 -
蓝桥秘密冲刺计划(10.8)奇怪的分式
定位:2014年第五届蓝桥杯省赛C/C++ B组试题F原题:奇怪的分式上小学的时候,小明经常自己发明新算法。一次,老师出的题目是:1/4 乘以 8/5 ,小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 (参见下图)老师刚想批评他,转念一想,这个答案凑巧也对啊,真是见鬼!对于分子、分母都是 1~9 中的一位数的情况,还有哪些算式可以这样计算呢?请写出所有不同算式的个数(包括题中举例的)。显然,交换分子分母后,例如:4/1 乘以 5/8 是满足要求的,这算做不同的算式。但对于分子分母相.原创 2020-10-08 15:06:13 · 242 阅读 · 0 评论 -
蓝桥秘密冲刺计划(10.7)加法变乘法
定位:2015年第六届蓝桥杯省赛C/C++ B组试题F原题:加法变乘法我们都知道:1+2+3+ … + 49 = 1225。现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015。比如:1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015 就是符合要求的答案。请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。注意:需要你提交的是一个整数,不要填写任何多余的内容。属性:枚举难度:破壳独白:我擦.原创 2020-10-08 00:21:11 · 164 阅读 · 0 评论 -
蓝桥秘密冲刺计划(10.7)方格填数
定位:2016年第七届蓝桥杯省赛C/C++ B组试题F原题:方格填数如下的10个格子填入0~9的数字。要求:连续的两个数字不能相邻。(左右、上下、对角都算相邻)一共有多少种可能的填数方案?请填写表示方案数目的整数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。属性:全排列+枚举难度:破壳独白:这题可真的是快打破了我的耐心。。。怎么说呢,如果我们采用全排列函数来排序数列的话,那首先序列的顺序种类问题就不用我们再考虑了。(都见证了全排列函数的强大了吧 )然后剩下的.原创 2020-10-07 17:08:53 · 149 阅读 · 0 评论 -
蓝桥秘密冲刺计划(10.6)递增三元组
定位:2018年第九届蓝桥杯省赛C/C++ B组试题F原题:递增三元组给定三个整数数组A = [A1, A2, … AN],B = [B1, B2, … BN],C = [C1, C2, … CN],请你统计有多少个三元组(i, j, k) 满足:a.1 <= i, j, k <= Nb. Ai < Bj < Ck【输入格式】第一行包含一个整数N。第二行包含N个整数A1, A2, … AN。第三行包含N个整数B1, B2, … BN。第四行包含N个整数C1.原创 2020-10-07 13:36:23 · 165 阅读 · 0 评论 -
蓝桥秘密冲刺计划(10.6)特别数的和
定位:2019年第十届蓝桥杯省赛C/C++ B组试题F原题:属性:枚举难度:破壳独白:根据题干进行循环枚举,数据量也只有10000,并不是太大。在循环枚举的时候,添加一个judge()函数来简化代码。嗯。。。这样基本就OK了。代码://#include<bits/stdc++.h>#include<iostream>using namespace std;int n,sum;bool judge(int x){ while(x>0){ if(.原创 2020-10-06 21:26:45 · 170 阅读 · 0 评论 -
蓝桥秘密冲刺计划(10.6)整除序列
定位:2020年第十一届蓝桥杯省赛C/C++ B组试题F(7月试题)原题:属性:模拟难度:破壳独白:这题才是局外人口中的蓝桥杯吧。。。嗯。。。没啥好说的,15分就是签到分了。但也不是一个注意点都没有,考虑到这里的数据量很大,我们还是采用long long int类型的数据比较保险,然后输出的话还是用printf()函数比较好,毕竟数据量大。补充一个知识点:关于long long类型的输入输出“%lld"和”%llu"是linux下gcc/g++用于long long i..原创 2020-10-06 19:39:14 · 275 阅读 · 0 评论 -
蓝桥秘密冲刺计划(10.6)矩阵
定位:2020年第十一届蓝桥杯省赛C/C++ B组试题E(7月试题)原题:属性:动态规划难度:中级独白:标准的动态规划,不是很难,但只要是动态规划的题起步就是中级难度,毕竟模拟公式不是一般人可以想出来的。网上很多版本模拟的并不是太好,给出的动态规划模拟公式,并不是很理解。 我们好好分析一下这题,数据量还是相当大的,因为给的约束较小,很多情况都符合题干的要求,所以枚举是不可能了,就是dfs估计也跑不出来。那么我们找出题干的核心即左边的数小,上面的数小。再分析,那么也就是说对于每个新数,要么紧挨着.原创 2020-10-06 18:48:57 · 188 阅读 · 0 评论 -
蓝桥秘密冲刺计划(10.5)迷宫
定位:2019年第十届蓝桥杯省赛C/C++ B组试题E原题:属性:bfs+队列模拟(迷宫)难度:中级独白:预估今年不会出代码填空题,所以无论哪届的代码填空,现在都一律跳过,只练习结果填空题和代码编程题。这是19年初赛的最后一个填空,放在这里也非常合适,说他特别难,倒也不至于。如果你想用Excel投机取巧来做,也不好弄,数据过大。如果你仅仅只会背一个bfs模板,这题也难说,还是需要一定的技巧的。所以这题放在这里是绝对考察大家基本功力的。首先我们的依照迷宫的特性,设置一些..原创 2020-10-06 09:59:00 · 151 阅读 · 0 评论 -
蓝桥秘密冲刺计划(10.4)方阵旋转
定位:2012年第三届蓝桥杯省赛C/C++ B组试题E原题:方阵旋转对一个方阵转置,就是把原来的行号变列号,原来的列号变行号例如,如下的方阵:1 2 3 45 6 7 89 10 11 1213 14 15 16转置后变为:1 5 9 132 6 10 143 7 11 154 8 12 16但,如果是对该方阵顺时针旋转(不是转置),却是如下结果:13 9 5 114 10 6 215 11 7 316 12 8 4.原创 2020-10-05 12:32:18 · 197 阅读 · 0 评论 -
蓝桥秘密冲刺计划(10.4)奇怪的比赛
定位:2012年第三届蓝桥杯省赛C/C++ B组试题D原题:奇怪的比赛某电视台举办了低碳生活大奖赛。题目的计分规则相当奇怪:每位选手需要回答10个问题(其编号为1到10),越后面越有难度。答对的,当前分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理)。每位选手都有一个起步的分数为10分。某获胜选手最终得分刚好是100分,如果不让你看比赛过程,你能推断出他(她)哪个题目答对了,哪个题目答错了吗?如果把答对的记为1,答错的记为0,则10个题目的回答情况可以用仅含有1和0的.原创 2020-10-04 20:14:58 · 121 阅读 · 0 评论 -
蓝桥秘密冲刺计划(10.3)黄金连分数
定位:2013年第四届蓝桥杯省赛C/C++ B组试题D原题:黄金连分数黄金分割数0.61803… 是个无理数,这个常数十分重要,在许多工程问题中会出现。有时需要把这个数字求得很精确。对于某些精密工程,常数的精度很重要。也许你听说过哈勃太空望远镜,它首次升空后就发现了一处人工加工错误,对那样一个庞然大物,其实只是镜面加工时有比头发丝还细许多倍的一处错误而已,却使它成了“近视眼”!!言归正传,我们如何求得黄金分割数的尽可能精确的值呢?有许多方法。比较简单的一种是用连分数:这个连分数计算的“层..原创 2020-10-04 10:25:16 · 126 阅读 · 0 评论 -
蓝桥秘密冲刺计划(10.3)史丰收速算
定位:2014年第五届蓝桥杯省赛C/C++ B组试题D原题:史丰收速算史丰收速算法的革命性贡献是:从高位算起,预测进位。不需要九九表,彻底颠覆了传统手算!速算的核心基础是:1位数乘以多位数的乘法。其中,乘以7是最复杂的,就以它为例。因为,1/7 是个循环小数:0.142857…,如果多位数超过 142857…,就要进1。同理,2/7, 3/7, … 6/7 也都是类似的循环小数,多位数超过 n/7,就要进n下面的程序模拟了史丰收速算法中乘以7的运算过程。乘以 7 的个位规律是:偶数乘以2,.原创 2020-10-03 22:01:08 · 183 阅读 · 0 评论 -
蓝桥秘密冲刺计划(10.2)格子中输出
定位:2015年第六届蓝桥杯省赛C/C++ B组试题D原题:格子中输出StringInGrid函数会在一个指定大小的格子中打印指定的字符串。要求字符串在水平、垂直两个方向上都居中。如果字符串太长,就截断。如果不能恰好居中,可以稍稍偏左或者偏上一点。下面的程序实现这个逻辑,请填写划线部分缺少的代码。#include <stdio.h>#include <string.h>void StringInGrid(int width, int height, const .原创 2020-10-03 11:09:48 · 139 阅读 · 0 评论 -
蓝桥秘密冲刺计划(10.2)快速排序
定位:2016年第七届蓝桥杯省赛C/C++ B组试题D原题:快速排序排序在各种场合经常被用到。快速排序是十分常用的高效率的算法。其思想是:先选一个“标尺”,用它把整个队列过一遍筛子,以保证:其左边的元素都不大于它,其右边的元素都不小于它。这样,排序问题就被分割为两个子区间。再分别对子区间排序就可以了。下面的代码是一种实现,请分析并填写划线部分缺少的代码。注意:只填写缺少的内容,不要书写任何题面已有代码或说明性文字。#include <stdio.h>void swa.原创 2020-10-02 10:52:04 · 123 阅读 · 0 评论