自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 【蓝桥杯国赛】动态规划

动态规划”在蓝桥杯中的出题类型,主要为两种,要格外注意,每一次 dp 的迭代更新,都是针对于当前位置下的“所有情况”进行的,应着眼于当前位置的每一种情况。

2024-05-31 21:08:20 935 1

原创 【蓝桥杯国赛】二分法

若满足条件每个牌位都能通过补牌 / 不补牌凑到;如果凑不到,则不满足条件。① 利用“二分法”找到每个 l, r 的位置所在的堆。② 分类讨论:若l,r在同一堆?若l,r不在同一堆?③ 尽量少用循环,多从“数学”的角度去找公式。”,并通过二分找到该值。①将待查找序列设置为“

2024-05-31 19:46:48 375 1

原创 【蓝桥杯国赛】双指针

时,需格外注意其循环条件:有可能p==n-1,但此时q!但两个数组的数组和必然是相等的,因此只需要再合并数组余下的数即可。若碰到不满足情况的数字,指针 left=tmp+1,使其始终满足“每个区间内至多一个不满足条件的数字”。时,不要改变指针指向的数组的内容;分别用 a, b 两个指针指向两个字符串,当满足相等情况时,才接着向后移动。① 数组 / 字符串中,有多少个满足情况的连续区间。① tmp 记录上一个不满足条件的数的位置。③该区间的长度,即为区间的数目。② 数组 / 字符串,合并。

2024-05-31 17:49:09 430 1

原创 【蓝桥杯国赛】BFS——“最短路径”问题

①遍历所有可能性下,记录下当前状态,并进入队列。②按照先后顺序,逐一检验队列中的所有情况,并更新状态。③一旦出现满足题目要求的情况,则立即退出程序。

2024-05-21 21:43:29 224

原创 【python语言】第十三届蓝桥杯国赛 c/c++b组

①对于1号操作,需要不断增加至9,(除了9到0外)任何一个“增加”都起正作用。由此,将某位上的数字增加至9后,若有剩余,留给下一位。由此,若2号操作的次数不足以减少至9,则不使用。一开始,我将此题理解为了需要“进位”和“退位”,于是这道题就被我人为复杂化了(不需要)。②结合题意,寻找”最大值“,因此只需要设置“一维dp”即可;若设置“二维dp”,会超时。(1)确定边界值在左半边的情况,将区间分为[l,mid-1]和[mid,r](2)确定边界值在右半边的情况,将区间分为[l,mid]和[mid+1,r]

2024-05-12 12:39:11 333

原创 【python语言】第八届蓝桥杯国赛 c/c++b组

分成k组:{0,0+k,0+2k,...}, {1,1+k,1+2k,...}, {2,2+k,2+2k,...}, {k-1, 2k-1, 3k-1,...},并将其作为接下来每一步“动态规划”的weight。与此同时,这对输入进行了“平滑处理”。①输入里存在相同数字,相同数字可以同时出现在“匹配”中;k=4时:[1,5], [2], [3], [4]k=3时:[1,4], [2,5], [3]k=2时:[1,3,5], [2,4]假设存在序列:1,2,3,4,5。k=1时:[1,2,3,4,5]

2024-05-10 16:32:45 238

原创 【python语言】第七届蓝桥杯国赛 c/c++b组

因此,①确定机器人塔的行数,第n行有n个元素;②根据行数,确定最后一行元素的所有情况;③利用“dfs”由下往上逆推,看该情况是否成立,成立则ans+=1。经分析,“从下往上”逆推比较好做;与此同时,只要确定了最后一行,整个“机器人塔”都确定了。3. 要点分析:这是一个较为暴力的思路。(由于为C语言代码填空,本题略过)3. 要点分析:无。

2024-05-09 14:39:39 432

原创 【python语言】第六届蓝桥杯国赛 c/c++b组

①当两个字符串都看似“不定”时,总得先让一个“固定下来”。由于给定的资料的字符顺序不可更改,因此,可匹配的内容是有限的;②由于密文可以随意更换顺序,

2024-05-06 22:19:24 169 1

原创 【python语言】第十四届蓝桥杯国赛 c/c++b组

持续更新中......

2024-05-04 17:06:50 614 2

原创 【python语言】第十一届蓝桥杯国赛 pyb组

在做此题之前,我纠结于参考的依据为“s+a”、“s+a+e”还是“s+a、s+a+e”(此部分可忽略)。③ 递归条件——基于可选择的4个方向,且移动的路线满足盒子的边界条件。① 循环依据——基于盒子上的每个字母,A~P依次寻找路径。经过证明,可知:由所有局部最优解构成的解一定是全局最优解。② 终止条件——当遍历完盒子上的所有字母时。② 由此以“4”作为起点,对输入的年份。,找到公元纪年里最小的“甲子年“。即公元4年为年份最小的“甲子年”。① 依据“天干”与“地支”的。

2024-05-03 19:38:48 535 1

原创 【第十四届 蓝桥杯省赛B组】试题解析

③如果二分得到的时间点 mid 符合条件,因为大于 mid 的时间点也一定符合条件,所以更新 right=mid,否则更新 left=mid+1;的应用场景在于,存在一个“临界值”可以将整体分成两个部分,一部分满足条件,另一部分不满足;退位:3,2,1,0,9,8,7,6,5,4,3,2,1(12个)②注意结点之间的父子关系,编号小的结点为编号大的结点的父结点。利用列表的pop(),来检验顺序的正确性,是一个很好的思路。进位:3,4,5,6,7,8,9,0,1(8个)②枚举的时候,注意是否有重复计算。

2024-04-12 15:12:03 536

原创 【第十三届 蓝桥杯省赛B组】试题解析

③选定一部分条件得到的部分解集合,题目的最终解必然包含在其中,且步长大小一致(因为是倍数关系);由此,选定后几个较大数作为条件,得到两个可能解,计算基本步长。②若仅用187作为步长进行循环,计算量还是太大,因此考虑增加步长的数量级。①由题可知,该数是11和17的公倍数,即为11*17=187的倍数。②注意结点之间的父子关系,编号小的结点为编号大的结点的父结点。④利用基本步长,去遍历接下来的剩余条件,得到最终解。2. 难度:⭐⭐⭐⭐⭐。2. 难度:⭐⭐⭐⭐。2. 难度:⭐⭐⭐⭐。2. 难度:⭐⭐⭐⭐。

2024-04-12 15:11:05 331

原创 【第十二届 蓝桥杯省赛B组】试题解析

每行最大的数为 C(n, n // 2),当n取33时有C(n, n // 2) > 1000000000,因此只需考虑0到33行。4)set.has(value):判断value是否在set中,在返回true,否则返回false。3)set.delete(value):删除值,值存在返回true,否则返回false。1)new Set(iterable):创建set,可以传入可迭代的对象,一般是数组。2)set.add(value):添加值到set中,返回set本身。②动态规划,得到全局最优解。

2024-04-12 15:10:13 522

原创 【第十一届 蓝桥杯省赛B组】试题解析

②利用了“回溯”,来依次确定当前最大值是否满足“向左下走和向右下走的次数不超过1”,若满足则直接输出答案;(4)start,weekday() #表示星期,0代表星期一,1代表星期二,依此类推。(3)start.day #表示月份中的哪一天,范围从1到31(取决于具体的月份)①为了便于计算,构建了一个n*(n+1)维的数组,没有值的位置都填0.②我的方法主要在于列举出所有的情况,代码部分存在冗余,仅供参考。前者表示上一个位置是向右下走,后者表示上一个位置是向左下走。

2024-04-11 21:22:35 694 1

原创 【蓝桥杯笔记】DP专项学习

末尾值即为最优解。

2024-03-27 20:46:31 301

原创 【蓝桥杯】一些必须知道的小点!!

ps1. 若需要把十六进制的英文字母转换为十进制,即:int(x, 16)ps2. 若想要去掉前缀,使用[2:]即可,如:hex(x)[2:]①可以直接使用“^”来进行异或计算,得到的结果是十进制整数。ps3. 进行异或操作时,比较的是二进制数,②如果需要转换为二进制,则使用bin()函数。1. hex():十六进制。2. oct():八进制。3. bin():二进制。

2024-03-25 11:56:06 171 1

原创 【蓝桥杯笔记】DFS专项学习

递归+循环”所有可能的方案或者路径终止条件除此之外,为了避免重复计算,可以利用数组来保存过去已经计算好的值,在下一次使用时直接调用即可;该方法称之为。其相比简单的递归,可以减少时间复杂度,本质是用空间换时间。

2024-03-24 17:17:17 339 1

原创 蓝桥杯 | C/C++:字符串的大小比较

本系列的创作目的在于,针对本人在蓝桥杯备考中遇到的问题,做一个备忘录和总结。”以题目为中心“,由此进行发散。本文会提供相应的题目和代码,之后会有一些相关知识点的小结。

2023-03-15 23:56:22 1290

原创 蓝桥杯 | C/C++:进制的转换

本系列的创作目的在于,针对本人在蓝桥杯备考中遇到的问题,做一个备忘录和总结。”以题目为中心“,由此进行发散。本文会提供相应的题目和代码,之后会有一些相关知识点的小结。

2023-03-15 13:00:22 549

原创 蓝桥杯 | C++:字符串的使用

本系列的创作目的在于,针对本人在蓝桥杯备考中遇到的问题,做一个备忘录和总结。”以题目为中心“,由此进行发散。本文会提供相应的题目和代码,之后会有一些相关知识点的小结。

2023-03-14 16:39:52 169

原创 C语言:万能解法 —— 暴力求解法

“暴力求解法”的本质是列举法;就理论上而言,它可以解决所有问题,只是时间的长短问题罢了。但对于“暴力求解法”也是可以进行优化的,我们姑且称优化后的“暴力求解法”为“巧暴”。具体的操作方法就是充分利用约束条件,以缩小算法计算的范围。(1)利用题目中的等式条件(2)利用题目中的不等式条件,进行数学中不等式的缩放下面就来举两个例子吧!例1:输入正整数n,按从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a~j恰好为数字0~9的一个排列,2<=n<

2022-04-14 20:40:11 3352 1

原创 C语言小点:数字的四舍五入

·思路(1)使用强制类型转换(2)使用floor函数但这些方法都只能是向零舍入到整数,即正数向下舍入,负数向上舍入类似于高斯函数:【2.1】=2,【2.9】=2,【-1.5】=-2.因此,为了满足要求,我们可以在待四舍五入的数后面+0.5。这样的话就成功地把原来的数字范围从【0,1】缩小至现在的数字范围【0.0.5)和【0.5,1】中,我们就可以进行四舍五入操作了。·例题输入一个单精度数,让其四舍五入成整数。方案一:#include <stdio.h>

2021-12-21 13:06:50 1672

原创 C语言小点:字符串的输入与输出

·字符串的输入1.利用scanf中的“%c”逐个输出#当利用scanf函数逐个输入时,不会自动在末尾添加上结束标记符号“\0”;因此手动加上。int i;char str[81];for (i=0;i<81;i++)scanf("%c",&str[i]);str[i]='\0';2.利用scanf中的“%s”整体输入(直接使用数组名)#当利用scanf函数整体输入时,末尾会自动加入结束标记号“\0”;但一遇到空格、Tab键和回车符就会自动结束输入。.

2021-12-18 10:56:35 1707

原创 C语言:高精度计算1

#最近在准备期末考试,刚好又做到“高精度加法”这一题目,想着能否再额外拓展到其它类型,于是写下了这篇博客。可能代码不算精简,算法不够高级,请多指教!!!#由于能力有限,目前只做出了高精度加减法,以后会继续努力,再更新高精度乘除法的!!# 若有其他意见或者是不同想法,欢迎交流(如果你觉得不错的话,记得随手点个赞哦~谢谢啦~)1.高精度加法#include <stdio.h>#include <string.h>int main(){ char a[

2021-12-11 17:08:41 545

原创 C语言:组成不重复的三位数

#对于这个问题,我有两种解决思路,第一种较为简单,第二种较为复杂(1)通用思路:根据数组中的数字自由组合成三位数(2)找出最小数和最大数并以此为循环边界(目的在于缩小循环的范围,提高效率),之后根据不断循环,将不符合要求的数字排除,在某些题中会简便许多# 若有其他意见或者是不同想法,欢迎交流(如果你觉得不错的话,记得随手点个赞哦~谢谢啦~)·由1,2,3,4组成的不重复的三位数(1)通用思路#include <stdio.h>int main(){ int

2021-12-05 22:50:22 3803

原创 《算法竞赛入门经典 第2版》-- 第2章习题

1.倒三角形(triangle)#include "stdio.h"int main(){ int n; scanf("%d",&n); int i,j; for (i=1;i<=n;i++) { for (j=0;j<=i-1;j++) printf(" "); for (j=1;j<=2*(n+1-i)-1;j++) printf("#"); ...

2021-12-04 12:07:19 595

原创 C语言:最近对问题

描述由键盘输入n(n<50)个点的坐标x,y(x,y<1000,浮点数),计算出最近两个点的距离。(保留三位小数)输入格式输入第一个整数为有n个点,此后分别为n个的坐标x y输入样例30 01 22 2输出样例1.000#include "stdio.h"#include <math.h>int main(){ int n,i,j; scanf("%d",&n); double l...

2021-11-30 11:28:03 1418

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除