- 博客(26)
- 收藏
- 关注
原创 蓝桥杯最后十天冲刺 day 2 双指针的思想
双指针(Two Pointers)是一种在数组或链表等线性结构中常用的算法技巧,通过使用两个指针(索引或引用)以不同的速度或方向遍历数据结构,从而高效解决问题。双指针通常用于优化暴力解法,将时间复杂度从 O(n²) 降低到 O(n) 或 O(n log n)。双指针的核心是通过协同移动两个指针有序数组的搜索(如两数之和)。滑动窗口问题(如子串、区间统计)。链表操作(如快慢指针)。在蓝桥杯竞赛中,双指针常与排序、贪心等结合,需注意边界条件和去重处理。
2025-04-02 17:39:31
480
原创 蓝桥杯python编程每日刷题 day 21
小知识点:list.index(x,start,end),在列表的start到end的范围内查找x第一次出现的序列题目:给定一个长度为 N 的数列 A1, A2, · · · , AN。现在小蓝想通过若干次操作将这个数列中每个数字清零。每次操作小蓝可以选择以下两种之一:1. 选择一个大于 0 的整数,将它减去 1;2. 选择连续 K 个大于 0 的整数,将它们各减去 1。小蓝最少经过几次操作可以将整个数列清零?
2025-03-30 20:46:40
736
原创 蓝桥杯python编程每日刷题 day 20
题目:给定一个长度为 N 的整数序列:A1, A2, · · · , AN。现在你有一次机会,将其中连续的 K 个数修改成任意一个相同值。请你计算如何修改可以使修改后的数列的最长不下降子序列最长,请输出这个最长的长度。最长不下降子序列是指序列中的一个子序列,子序列中的每个数不小于在它之前的数。
2025-03-27 22:52:56
1888
原创 蓝桥杯python每日刷题day 19
题目:小蓝最近正在玩一款 RPG 游戏。他的角色一共有 N 个可以加攻击力的技能。其中第 i 个技能首次升级可以提升 Ai 点攻击力,以后每次升级增加的点数都会减少 Bi。(上取整) 次之后,再升级该技能将不会改变攻击力。现在小蓝可以总计升级 M 次技能,他可以任意选择升级的技能和次数。请你计算小蓝最多可以提高多少点攻击力?
2025-03-26 19:28:44
268
原创 蓝桥杯python编程每日刷题day 19
题目:对于一个排列 A = (a1, a2, · · · , an),定义价值 ci 为 a1 至 ai−1 中小于 ai 的数的个数,即 bi = |{aj | j < i, aj < ai}|。定义 A 的价值为。给定 n,求 1 至 n 的全排列中所有排列的价值之和。
2025-03-24 21:14:05
250
原创 蓝桥杯python编程每日刷题day 18
题目:在一个字符串 S 中,如果 S i = S i−1 且,则称 S i 和 S i+1 为边缘字符。如果且 S i = S i+1,则 S i−1 和 S i 也称为边缘字符。其它的字符都不是边缘字符。对于一个给定的串 S,一次操作可以一次性删除该串中的所有边缘字符(操作后可能产生新的边缘字符)。请问经过 264 次操作后,字符串 S 变成了怎样的字符串,如果结果为空则输出 EMPTY。
2025-03-20 21:37:35
679
原创 蓝桥杯python编程每日刷题day 17
题目:蜂巢由大量的六边形拼接而成,定义蜂巢中的方向为:0 表示正西方向,1 表示西偏北 60◦,2 表示东偏北 60◦,3 表示正东,4 表示东偏南 60◦,5 表示西偏南 60◦。对于给定的一点 O,我们以 O 为原点定义坐标系,如果一个点 A 由 O 点先向 d 方向走 p 步再向 (d + 2) mod 6 方向(d 的顺时针 120◦ 方向)走 q 步到达,则这个点的坐标定义为 (d, p, q)。在蜂窝中,一个点的坐标可能有多种。
2025-03-20 19:59:26
361
原创 蓝桥杯python编程day 16
题目:小蓝对一个数的数位之和很感兴趣,今天他要按照数位之和给数排序。当两个数各个数位之和不同时,将数位和较小的排在前面,当数位之和相等时,将数值小的排在前面。例如,2022 排在 409 前面,因为 2022 的数位之和是 6,小于 409 的数位之和 13。又如,6 排在 2022 前面,因为它们的数位之和相同,而 6 小于 2022。给定正整数 n,m,请问对 1 到 n 采用这种方法排序时,排在第 m 个的元素是多少?
2025-03-20 18:18:47
140
原创 蓝桥杯python编程每日刷题day 15
题目:小蓝有一个长度为 n 的数组 A = (a1, a2, · · · , an),数组的子数组被定义为从原数组中选出连续的一个或多个元素组成的数组。数组的最大公约数指的是数组中所有元素的最大公约数。如果最多更改数组中的一个元素之后,数组的最大公约数为 g,那么称 g 为这个数组的近似 GCD。一个数组的近似 GCD 可能有多种取值。具体的,判断 g 是否为一个子数组的近似 GCD 如下:1. 如果这个子数组的最大公约数就是 g,那么说明 g 是其近似 GCD。
2025-03-20 11:12:57
709
原创 蓝桥杯python编程每日刷题day 15
题目:给定 n, m ,问是否存在两个不同的数 x, y 使得 1 ≤ x < y ≤ m 且 n mod x = n mod y。
2025-03-18 19:41:35
231
原创 蓝桥杯python每日刷题day 14
题目:给定一个正整数 x,请找出一个尽可能短的仅含正整数的数组 A 使得 A 中 恰好有 x 对 i, j 满足 Ai > Aj。如果存在多个这样的数组,请输出字典序最小的那个。
2025-03-18 11:22:12
565
原创 蓝桥杯python每日刷题day 14
题目:给定一棵树,树根为 1,每个点的点权为 Vi。你需要找出若干个点 Pi,使得:1. 每两个点 Px Py 互不相邻;2. 每两个点 Px Py 与树根的距离互不相同;3. 找出的点的点权之和尽可能大。请输出找到的这些点的点权和的最大值。
2025-03-16 22:36:25
638
原创 蓝桥杯python每日刷题day 13
先将每一个闸门和其开闸时间放到一个列表中,在设计一个函数,用于统计在不同的时间t的情况下,n个闸门所能让水覆盖的范围,将每个闸门所能覆盖的范围统计进一个列表中,挨个遍历,判断其是否连续,最后再用二分搜索,判断在0到10**10的范围中,最先连续的时间。有一根长度为 len 的横向的管道,该管道按照单位长度分为 len 段,每一段的中央有一个可开关的阀门和一个检测水流的传感器。若为n<=right则(1,3)和(4,6)就会被判断为不连续,n为4,right为3,用n-1来判断彼此相差一的范围。
2025-03-16 19:12:48
183
原创 蓝桥杯python编程每日刷题 day 12(2023)
小知识点:该题中,有字母对应关系,可用ord(),如ord(“a“)= 98题目:给定一个仅含小写字母的字符串 s ,假设 s 的一个子序列 t 的第 i 个字符 对应了原字符串中的第 pi 个字符。我们定义 s 的一个松散子序列为:对于 i > 1 总是有 pi − pi−1 ≥ 2。设一个子序列的价值为其包含的每个字符的价值之和 ( a ∼ z 分别为 1 ∼ 26 )。求 s 的松散子序列中的最大价值。(1)代码:n = len(x)ii。
2025-03-13 20:59:41
396
原创 蓝桥杯python每日刷题 day 11
作为小蓝的助手,你的任务是帮助小蓝计算出,在这2024位勇者中,有多少人符合穿越时空之门的条件。首先总共有9 ** 10000个数,再根据容斥定理,a和b的并集等于a加b减去a和b的交集,在本题中,我们将不含3的数设为a,不含7的数设为b,则既不含a也不含b的数为a和b的并集。pow函数可以算a的b次方,也可以算a的b次方对mod的取余。pow函数可以算a的b次方,也可以算a的b次方对mod的取余。2.pow(a,b,mod)算a的b次方对mod的取余。1.pow(a,b)算a的b次方。
2025-03-13 19:31:25
293
原创 蓝桥杯python编程每日刷题 day ten
第二行包含 N 个整数 s1, s2, · · · , sN ,相邻整数之间使用一个空格分隔,表示小蓝的符文石上刻有的数字符号。小蓝的符文石集合标记为 s1, s2, . . . , sN,小桥的则为 t1, t2, . . . , tN。这样的序列形式为 si1, ti2, si3, ti4, . . .,其中序列索引满足 i1 < i2 < i3 < i4 < . . .,并且序列中每一对相邻的符文石都至少包含一个共鸣元素。对x进行整除10,以此来更新x的最后一位数,由此实现了对x的每一个元素的检查。
2025-03-09 19:57:12
217
原创 蓝桥杯python编程每日刷题 day nine
每位村民轮流发言,编号为 i 的村民提出了这样的断言:坐在他之后的两位村民——也就是编号 i + 1 和 i + 2(注意,编号是环形的,所以如果 i 是最后一个,则 i + 1 是第一个,以此类推)之中,一个说的是真话,而另一个说的是假话。在以上推断中当长度为4 5 7 8...时,因为首位相接,最后一个和最前一个不批配,所以当n%3 == 0时,说谎者为n/3。首先假设第一位为1,根据题设,我们可知,剩下两位中有一个为真,有一个假,将其分为两种情况则前三位为110 或101。
2025-03-09 17:09:37
408
原创 蓝桥杯python每日刷题 day eight
小蓝发现了一个神奇的闹钟,从纪元时间(1970 年 1 月 1 日 00:00:00 )开始,每经过 x 分钟,这个闹钟便会触发一次闹铃(纪元时间也会响铃)。对于给出的任意一个格式为 yyyy-MM-dd HH:mm:ss 的时间,小蓝想要知道在这个时间点之前(包含这个时间点)的最近的一次闹铃时间是哪个时间?1.datetimelei的 strptime(time,“%Y-%m-%d H:%M:%S“)是将datetime变成字符串。1.算出与最近的闹钟时间的分钟数。1.注意YHMS的大写。
2025-03-08 20:39:51
300
原创 蓝桥杯python每日刷题 day seven
在一个 n × m 的矩形网格中,每个格子中都有一个整数,第 i 行第 j 列上的整数为 Ai, j。此处补充对角线分为主对角线和副对角线,主为从左上角到右下角,为i - j,副则为从右上角到左下角,为i + j。在主对角线中3-1意为只用两对满足条件,而1-1意为在(i+j)为0的副对角线中,没有跟1一样的值,所以为0对。(主对角线 -1,值 2 出现 1 次)。(主对角线 -1,值 6 出现 1 次)。(主对角线 1,值 4 出现 1 次)。(副对角线 0,值 1 出现 1 次)。
2025-03-06 23:00:11
652
原创 蓝桥杯python编程 day six
在红色标注的地方,为正确的代码,原先错误的代码为:return dict_h[20], dict_h[h_left],其在输入 21 54 时输出为('twenty', 'one') ('fifty', 'four'),其中return返回的是元组,而return f"{dict_h[20]} {dict_h[h_left]}" 则是将dict_h[20]转换为字符串。h小于24,m小于60.输出格式。如果m为0,则将时读出来,然后加上“o'clock”,如3:00读作“three o'clock”
2025-03-05 22:25:34
320
原创 蓝桥杯python编程每日刷题 day five
1.找到(5,3,8,2,9}中最小的两个数,分别是2和3,从{pi,中删除它们并将和5加入,得到(5,8,9,5},费用为5.2.找到(5,8,9,5}中最小的两个数,分别是5和5,从{pi中删除它们并将和10加入,得到(8,9,10},费用为10.3.找到(8,9,10}中最小的两个数,分别是8和9,从{pi}中删除它们并将和17加入,得到(10,17),费用为174.找到(10,17}中最小的两个数,分别是10和17,从{pi},中删除它们并将和27加入,得到{27},费用为27。
2025-03-04 21:05:25
455
原创 蓝桥杯python编程每日刷题 day four
对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。c = [[] * n for _ in range(n)],则会导致因一行的改变而导致矩阵整体的改变。在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示,输出格式。将交叉矩形的左上角和右上角的坐标求出来即可,其中a中的元素为[x1,y1,x2,y2]= n * (n-1) * (n-2) *...*3 * 2 * 1。输出仅包含一个实数,为交的面积,保留到小数后两位,
2025-03-02 22:39:24
252
原创 蓝桥杯python编程每日刷题 day three
回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。# get方法为字典的一种用法,数字典中char的个数,如get(char,0)为如果没有char这个值,则返回0,因为char_count刚开始为空字典,所以加1。#如果为回文串,则出现次数为偶数的字符一定可以对称,但出现次数为基数的字符,及中间字符一定只能出现一次。先判断字符出现的基偶次数,如果出现次数为基数的字符为1个以上,则该字符串不为回文串,
2025-03-01 22:36:59
217
原创 蓝桥杯python每日刷题 day two
有n(2sns20)块芯片,有好有坏,已知好芯片比坏芯片多。每个芯片都能用来测试其他芯片。用好芯片测试其他芯片时,能正确给出被测试芯片是好还是坏。而用坏芯片测试其他芯片时,会随机给出好或是坏的测试结果(即此结果与被测试芯片实际的好坏无关)。给出所有芯片的测试结果,问哪些芯片是好芯片。用python来解决以上问题。如果在给出的列表中1的数大于0的数,则芯片为真,反之则为假。
2025-02-27 22:32:23
214
原创 蓝桥杯python编程每日刷题day one
比如 Beiing 和 Nanjing编程判断输入的两个字符串之间的关系属于这四类中的哪一类,给出所属的类的编号。num // 100 是算153的1,num % 10 是算153的3,num // 10 % 10 是算153的5。[1, 1, 1, 0], # 芯片3的测试结果(假设是好芯片)[1, 1, 0, 0], # 芯片2的测试结果(假设是坏芯片)[0, 1, 0, 0], # 芯片0的测试结果。[1, 0, 0, 0], # 芯片1的测试结果。列举一个100一内2的斐波那契数列。
2025-02-25 22:33:57
943
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人