蓝桥杯
文章平均质量分 63
蓝桥杯
MaolinYe(叶茂林)
事情没有想象中的那么复杂,也没有想象中的那么简单
展开
-
2013年第四届C/C++ A组蓝桥杯省赛真题解析
首先遇到 - ,那么找 - 后面的两个操作数,遇到 + ,那么找 + 后面的两个操作数,遇到了3,所以应该是3+后面的一个操作数,但是后面又遇到了 * ,所以继续找 * 后面的两个操作数,遇到了5,所以应该是5*后面的一个操作数,但是又遇到了 + ,所以继续找 + 后面的两个操作数,这时遇到了2和6,于是2+6变成了8(操作符+),5*8变成了40(操作符*),3+40变成了43(操作符+),次数操作码 - 只有一个操作数43,所以继续往后找一个操作数,遇到了1,43-1变成了结果42。原创 2022-11-10 18:47:46 · 3051 阅读 · 0 评论 -
蓝桥杯C/C++省赛:大臣的旅费
如果当前节点已经探索过了,那么直接return回去,如果没有探索过,那么记录路径总距离,与先前记录的最长距离进行比较,更新最长距离,然后继续对当前节点后连接的节点并且不是前一个节点的节点(因为是双向图,如果不加限制可能会跑回去)继续进行递归DFS。聪明的J发现,如果不在某个城市停下来修整,在连续行进过程中,他所花的路费与他已走过的距离有关,在走第x千米到第x+1千米这一千米中(x是整数),他花费的路费是x+10这么多。程序对所有的节点都进行一次DFS,找出最长距离,根据数学知识,如果距离是X,那么路费是。原创 2022-11-10 18:41:53 · 265 阅读 · 0 评论 -
蓝桥杯C/C++省赛:剪格子
方向是往上下左右递归,这里需要记得标记为已访问之后,回溯的时候需要取消标记,重新标记为未访问。递归结束的条件一般是遇到边界返回,或者是找到解,这里存在最优解的情况,所以还需要记录每次解,将其和当前最优解进行比较。本题的要求就是请你编程判定:对给定的m x n 的格子中的整数,是否可以分割为两个部分,使得这两个区域的数字和相等。问题是可以变成路径问题,如果有解,那么找出一条从左上角开始的一条路径,这条路径的带权长度为总路径长度的一半。程序输出:在所有解中,包含左上角的分割区可能包含的最小的格子数目。原创 2022-11-09 14:52:08 · 257 阅读 · 0 评论 -
蓝桥杯C/C++省赛:买不到的数目
你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。自然数a,b互质,则不能表示成ax+by(x,y为非负整数)的最大整数是ab-a-b。我们需要三个函数,一个求最大公因数,一个求最小公倍数,一个检查是否不能由a和b表示。a和b线性组合不能表示的数字介于a+b-1和a和b的最小公倍数之间。本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。极其NB的性质,高级的数学定理搞定一切美妙的算法。原创 2022-10-29 13:24:22 · 319 阅读 · 0 评论 -
蓝桥杯C/C++省赛:错误票据
因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。每行数据长度不等,是用空格分开的若干个(不大于100个)正整数(不大于100000)要求程序首先输入一个整数N(N原创 2022-10-27 19:45:15 · 393 阅读 · 1 评论 -
蓝桥杯C/C++省赛:逆波兰表达式
正常的表达式称为中缀表达式,运算符在中间,主要是给人阅读的,机器求解并不方便。其返回值为一个结构:其中第一元素表示求值结果,第二个元素表示它已解析的字符数。不再需要括号,机器可以用递归的方法很方便地求解。int result;例如:3 + 5 * (2 + 6) - 1。下面的程序对一个逆波兰表示串进行求值。而且,常常需要用括号来改变运算次序。每个运算数都是一个小于10的非负整数。只有 + - * 三种运算符。原创 2022-10-27 18:46:23 · 394 阅读 · 0 评论 -
蓝桥杯C/C++省赛:前缀判断
问题是判断一个串是否是另一个串的前缀,代码前面部分有两个字符串的地址,即第一个字符的地址,代码后面部分通过判断needle是否为空来返回NULL,而needle一开始是需要判断前缀的字符串的地址,所以填空部分改变了needle的值,可以猜出应该是通过移动两个字符指针来挨个比较字符。如下的代码判断 needle_start指向的串是否为haystack_start指向的串的前缀,如不是,则返回NULL。注意:仅把缺少的代码作为答案,千万不要填写多余的代码、符号或说明文字!原创 2022-10-27 18:19:49 · 404 阅读 · 0 评论 -
蓝桥杯C/C++省赛:颠倒的价牌
这种价牌有个特点,对一些数字,倒过来看也是合理的数字。这样一来,如果牌子挂倒了,有可能完全变成了另一个价格,比如:1958 倒着挂就是:8561,差了几千元啊!有一天,悲剧终于发生了。庆幸的是价格出入不大,其中一个价牌赔了2百多,另一个价牌却赚了8百多,综合起来,反而多赚了558元。小李为了标价清晰、方便,使用了预制的类似数码管的标价签,只要用颜色笔涂数字就可以了。当然,多数情况不能倒读,比如,1110 就不能倒过来,因为0不能作为开始数字。小李的店里专卖其它店中下架的样品电视机,可称为:样品电视专卖店。原创 2022-10-27 14:45:41 · 260 阅读 · 0 评论 -
蓝桥杯C/C++省赛:振兴中华
一开始我的想法是用BFS或者DFS去找到满足的路径,但是我只会找到一个,没有办法找出所有的,后来发现这道题并不是考这个玩意,因为它的每一个格子都会有满足的路径(注意这句话),所以一个格子会有多种路径是满足的,而最多的路径数会出现在第一个格子,因为这是出发的地方,所有满足的路径都会经过它,所以我们只要找出第一个格子的路径数即可。比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。小明参加了学校的趣味运动会,其中的一个项目是:跳格子。原创 2022-10-27 14:07:56 · 322 阅读 · 0 评论 -
蓝桥杯C/C++省赛:排它平方数
这里必须注意,不仅仅平方数需要用long long来存储,原数字也需要用long long来存储,如果是用int或者long来存储原数字,那么相乘的时候也是用32位的寄存器来存储结果,所以会寄。仔细观察,203879 是个6位数,并且它的每个数上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。我们需要写两个函数,一个是判断这个6位正整数里面有没有相同的数字,另一个用来判断平方数的每个数位包不包含原数字的任何组成数位。先把数都变成字符串,然后依次判断平方数里面有没有原数字的组成数位。原创 2022-10-26 18:41:44 · 5432 阅读 · 9 评论 -
蓝桥杯C/C++省赛:高斯日记
这样可以省去大量的条件判断,从人的角度思考,让日期一天天跑起来,如果day比对应月份的天数大,说明月份需要加一,而day需要回到一,否则day++,最后判断月份如果大于12,那么year++。后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210。题目的意思是给定高斯的出生日期,要我们算高斯出生后8113天的年月日。原创 2022-10-26 17:55:29 · 279 阅读 · 0 评论 -
最小字符串 蓝桥杯 C++
第一个蓝桥杯程序原创 2022-06-16 19:12:13 · 1525 阅读 · 6 评论