- 博客(30)
- 收藏
- 关注
原创 蓝桥杯——松散子序列
很明显的动态规划问题,每次我们都取当前位置的最大值就可,从头开始,dp[i]=max(dp[i-2],dp[i-3])+num[i-3].
2024-04-12 17:41:43 745
原创 蓝桥杯——玩具蛇
请帮小蓝计算一下,总共有多少种不同的方案。如果两个方案中,存在玩具蛇的某一节放在了盒子的不同格子里,则认为是不同的方案。很明显的DFS,只需要定义方向,然后注意不要越界,每次放置好一段之后需要标记,标记完之后再接着搜索,搜完之后要删除标记。小蓝有—条玩具蛇,一共有16节,上面标着数字1至16。相邻的两节可以成直线或者成90度角。小蓝还有一个4×4的方格盒子,用于存放玩具蛇,盒子的方格上依次标着字母A到Р共16个字母。小蓝可以折叠自己的玩具蛇放到盒子里面。他发现,有很多种方案可以将玩具蛇放进去。
2024-04-11 20:09:23 479
原创 蓝桥杯——分糖果
分糖果很明显的DFS,我们设置7个深度,每个深度代表一个孩子,两种糖果,m=9,n=16,当这两种糖果的值达到9和16或者这两种糖果的值都被消耗完了就返回,输出count。两种糖果分别有9个和16个,要全部分给7个小朋友,每个小朋友得到的糖果总数最少为2个最多为5个,问有多少种不同的分法。这是—道结果填空的题,你只需要算出结果后提交即可。本题的结果为—个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。只要有其中一个小朋友在两种方案中分到的糖果不完全相同,这两种方案就算作不同的方案。
2024-04-11 19:12:22 527
原创 蓝桥杯——运动会
一开始这个题真是让人摸不着头脑,不知道应该用什么样的方式来储存每个人每次的排名,以及对应的得分,后来看了大佬的代码,豁然开朗,使用二维数组来储存成绩以及对应的人的序号,然后再根据成绩进行排序,再把排序后的序号依此取出来,再进行遍历,把每个人的分数进行赋值,赋值的时候使用的max(k-l,0),这样就把成绩换成分数了,真的大佬聪明极了,最后再遍历每个人的分数总和,输出。每个项目,不同运功员的成绩不会相 同,因此排名不会相同。输出一行包含 几 个整数,依次表示每个运动员的总分,相邻的整数之间用一个空格分隔。
2024-04-10 19:21:30 568
原创 蓝桥杯——分巧克力
分巧克力,每块巧克力可以分为多少个正方形,我们需要满足最少K个,而且要使得边长尽量长,每块巧克力的长l,宽w,则它可以分为成n=(l//(a))*(w//a)) 个边长为a的正方形,算最大边长,即使用二分算法来做。例如一块 6x5 的巧克力可以切出 6块 2x2 的巧克力或者 2 块3x3 的巧克力。小明需要从这 N 块巧克力中切出 K块巧克力分给小朋友们。小明拿出了珍藏的巧克力招待小朋友们。当然小朋友们都希望得到的巧克力尽可能大,你能帮小明计算出最大的边长是多少么?输出切出的正方形巧克力最大可能的边长。
2024-04-10 19:11:49 459
原创 蓝桥杯——考勤刷卡
其中 HH:MM: SS 表示刷卡时间, HH 为一个 0 到 23 之间的两位十进制整数 (可能含前导 0)表示时,MM 为一个0到 59 之间的两位十进制整数(可能含前 导 0) 表示分,SS 为一个 0到 59 之间的两位十进制整数 (可能含前导 0)表 示秒,ID 为一个不含前导 0的整数表示员工的编号。当员工刷卡时,会在后台留下一条记录,包括刷卡的时间和员工编号,只 要在一天中员工刷过一次卡,就认为他到岗了。输出若干行,每行包含一个整数,按照从小到大的顺序输出,表示到岗员 工的编号。
2024-04-09 17:19:04 445
原创 蓝桥杯——统计数字
已知不相同的数不超过 104个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。本题让统计出现数字的个数,要求按照从小到大的顺序输出,那么应该先创建字典来接收出现的数字,并统计它们的个数,然后再创建列表对字典的键进行排序,在输出的时候加上它们出现的次数。输出 m 行(m 为几 个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。第1行是整数 n,表示自然数的个数。第 2-n+1行每行一个自然数。
2024-04-09 17:13:30 650
原创 蓝桥杯——求和
给定 n 个整数 a1, a2,…输出一个整数 S,表示所求的和。请使用合适的数据类型进行运算。我们首先可以进行公式化简,化简后发现是一个明显的前缀和问题。这里给出两个代码,第一个是暴力方法,比较简单,但会超时。第二行包含 几 个整数 a1,a2,···,an。输入的第一行包含一个整数 n。第二个代码使用前缀和方法。
2024-04-08 21:15:45 419
原创 蓝桥杯——最长递增
本题我们只需要先定义一个列表,列表中存储数字,再使用一个循环,然后设置count作为结果,首先count要先赋值为1,这是因为要加上本体,然后如果num[i-1]
2024-04-08 20:47:17 614
原创 蓝桥杯——修剪灌木
有 N 棵灌木整齐的从左到右排成一排。爱丽丝在每天傍晚会修剪一棵灌 木,让灌木的高度变为 0 厘米。爱丝修剪灌木的顺序是从最左侧的灌木开始,每天向右修剪一棵灌木。当修剪了最右侧的灌木后,她会调转方向,下一天开 始向左修剪灌木。直到修剪了最左的灌木后再次调转方向。灌木每天从早上到傍晚会长高1厘米,而其余时间不会长高。在第一天的 早晨,所有灌木的高度都是0厘米。爱丽丝想知道每棵灌木最高长到多高。输出 N 行,每行一个整数,第之行表示从左到右第讠棵树最高能长到多高。爱丽丝要完成一项修剪灌木的工作。
2024-04-07 19:38:19 276
原创 蓝桥杯——删除字符
删除字符,要想得到最小单词,就要从头开始删除前面比较大的字母,可以从开头和它后面相邻的字母分别对比,如果前面的比较大,就删除掉前面的。给定一个单词,请问在单词中删除t个字母后,能得到的字典序最小的单词是什么?输入的第一行包含一个单词,由大写英文字母组成。其中,单词长度不超过 100,t小于单词长度。第二行包含一个正整数 t。输出一个单词,表示答案。
2024-04-07 19:21:45 730
原创 蓝桥杯——次数差
国王总是询问:获胜次数最多的和获胜次数最少的有多大差距?(当然,他不关心那些一次也没获胜的,认为他们在怠工罢了)本题考查的是字典的使用,通过判断键是否在字典里来对值进行处理。最后把最大的值减去最小的值即可。x星球有 26 只球队,分别用 a~z的 26 个字母代表。他们总是不停地比赛。在某一赛段,哪个球队获胜了,就记录下代表它的字母,这样就形成一个长长的串。要求输出一个数字,表示出现次数最多的字母比出现次数最少的字母多了多少次。输入,一个串,表示球队获胜情况(保证串的长度
2024-04-06 15:42:06 321 1
原创 蓝桥杯——旋转
接下来 几 行,每行 m 个整数,表示给定的图片。图片中的每个元素(像 素)为一个值为0至 255 之间的整数(包含0和255)使用二维列表对图片实现转置操作,最后的输出结果不能含有列表,输出只含有数字,我们选择使用两重循环来做。图片旋转是对图片最简单的处理方式之一,在本题中,你需要对图片顺时针旋转 90 度。输入的第一行包含两个整数 n,m,分别表示行数和列数。输出 m 行n 列,表示旋转后的图片。给定初始图片,请计算旋转后的图片。
2024-04-06 15:02:04 462 1
原创 蓝桥杯——猜字母
先创建一个长度为2014的列表,里面储存字母,然后把列表的长度是否等于一作为条件进行判断,如果不是,就只留下当前的奇数序列,否则就输出列表里的第一个值,这个值便是答案。这个题难点在于对列表的切片,从序列号为1开始切,步长设置为2,正好留下来奇数序列。把 abcd...s 共19个字母组成的序列重复拼接 106 次,得到长度为2014 的串。得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请输出该字母。接下来删除第1个字母(即开头的字母 a),以及第3个,第5个等所有奇数位置的字母。
2024-04-05 17:33:35 353 1
原创 蓝桥杯——奇怪的分式
本题可以使用四重循环来做,通过四重循环再通过分子与分母不相等这一条件进行筛选,最后累加即可。值得一提的是,(i*k)/(j*l)不可以写成(i/j)*(k/l),因为精度问题,如果写成(i/j)*(k/l),会少几种情况。对于分子、分母都是1~9 中的一位数的情况,还有哪些算式可以这样计算呢?请写出所有不同算式的个数(包括题中举例的)显然,交换分子分母后,例如:“乘以是满足要求的,这算做不同的算式。小明居然把分子拼接在一起,分母拼接在一起,答案是:(参见下图)但对于分子分母相同的情况,不在计数之列!
2024-04-05 17:04:17 389 1
原创 蓝桥杯——翻硬币
翻转硬币,每次只能翻转连续的两个硬币,并且只算操作一次,我们把给的两个字符串逐一比较,一旦不同,则翻转第一个不相同的字符并且把这个字符串和它相邻的字符串也翻转,从头到尾遍历,把所有的操作次数累加即可。现在小明的问题是:如果已知了初始状态和要达到的目标状态每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?桌上放着排成一排的若干硬币。如果同时翻转左边的两个硬币,则变为:oooo***oooo。两行等长的字符串,分别表示初始状态和要达到的目标状态。比如,可能情形是:**oo***oooo;
2024-04-04 13:28:22 319 1
原创 蓝桥杯——随意组合
本题考的是排列组合,python的permutations库可以很好的应对此类问题,首先我们开两个列表存储两组数据,然后使用循环遍历这两个列表的所有排列组合,判断条件设为a**2+b**2+c**2+d**2==int(str(a)[::-1])**2+int(str(b)[::-1])**2+int(str(c)[::-1])**2+int(str(d)[::-1])**2,这样就很好的把每一个数进行翻转并求出平方和。小明的配法是:(8,7),(5,6),(3,4),(2,1)
2024-04-04 12:44:40 398 1
原创 蓝桥杯——矩形切割
当他面对一块矩形材料时,他总是从中间切割一刀,切出一块最大的正方 形,剩下一块矩形,然后再切割剩下的矩形材料,直到全部切为正方形为止。例如,对于一块两边分别为5和3的材料(记为5x3),小明会依次切出3x3、2x2、1x1、1x1共4个正方形。请问小明最终会切出多少个正方形?每一次切割长的边都会减去短的边的长度,直到长的边和短的边相等,我们可以先设两个变量a,b分别表示长和短边的长度,然后通过循环对长边进行累减,直到两个边相等,每一次累减都会增加一个正方形,对正方形的个数进行累加即可。
2024-04-03 19:13:26 309 1
原创 蓝桥杯——完全日期
如果一个日期中年月日的各位数字之和是完全平方数,则称为一完全日期。例如:2021年6月5日的各位数字之和为2+0+2+1+6 +5 = 16,而 16 是一个完全平方数,它是 4的平方。所以2021年6月5 日是一个完全日期。例如:2021年6月23日的各位数字之和为2+0+2+1+6+2+3-16,是一个完全平方数。请问,从2001年1月1日到2021年12月31日中,一共有多少个完全日期?我们需要做的就是把每一个日期都转化为字符串然后进行遍历,如果各个数位和为完全平方数,就累加。
2024-04-03 17:59:02 325 1
原创 蓝桥杯——海盗分金币
恰巧,他们都先后经过途中的一个无名的荒岛,并且每个人都信心满满,觉得自己是第一个经过该岛的人。第二个到达的人也看到了金币,他也和第一个人一样,把所有金币5等分,发现刚好缺少一个金币,于是自己补进去一个,拿走了属于自己的那份。第三,第四,第五人的情况一模一样。等他们到了目的地,都说自己的情况,才恍然大悟,一起去荒岛找金币,然而再也没有找到荒岛。给出的条件就是每次被分过后的金币加一之后都可以被5整除,所以我们可以列出五重循环来进行条件判断,最后剩1000多个金币,我们用字符串长度为4和字符串首字母为1来限定。
2024-04-02 22:21:32 232 1
原创 蓝桥杯——一步之遥
矿车停在平直的废弃的轨道上。他的面前是两个按钮,分别写着“F”和“B”。小明突然记起来,这两个按钮可以控制矿车在轨道上前进和后退。透过昏暗的灯光,小明看到自己前方 1米远正好有个监控探头。他必须设法使得矿车正好停在摄像头的下方,才有机会争取同伴的援助。矿车上的动力已经不太足,黄色的警示灯在默默闪烁...每次进行F 或 B 操作都会消耗一定的能量。小明飞快地计算,至少要多少次操作,才能把矿车准确地停在前方1米远的地方。这是一个很简单的距离类题目,我们可以使用两层循环来判断最终的结果。
2024-04-02 21:44:20 253 1
原创 蓝桥杯——振兴中华
本题看起来像是二叉树,我是这样解的,从起字开始,把起之后的每一种情况进行累加,得到起1=1,起2=4,起3=6,起4=4,(起几代表第几列的起)。然后还有3个做,2个我,根据每一个做都对应两个起,做1=1+4,做2=4+6,做3=4+6,我1=做1+做2,我2=做2+做3,从=我1+我2。最后所有情况相加,得到35种。比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。小明参加了学校的趣味运动会,其中的一个项目是:跳格子。
2024-04-01 18:33:07 536 1
原创 蓝桥杯——激光样式
显然,如果只有 3 台机器,一共可以成5种样式,即:全都关上(sorry,此时无声胜有声,这也算一种);开一台,共3种:开两台,只 1种。我们可以简单列举一下前几台机器是什么情况,然后我们根据前几台的情况找规律。1台:2种情况,2台:3种情况。4台:8种情况...... 由此可见,后一台的情况种数是前两种情况之和,类似于斐波那契数列。即num=[0,2,3]+[0]*28,这样定义的好处是num[n]就是n台的情况种数,可以算出所有的结果,这一题我们只算最后一个结果。
2024-04-01 17:54:03 273
原创 蓝桥杯——星期几
使用datetime函数,weekday函数来解决,其中x.weekday()==0(代表星期一)....==6(代表星期日)那么,从建国到现在,有几次国庆节正好是星期日呢?1949 年的国庆节(10 月1日)是星期六。不要求写出具体是哪些年,只要一个数目!今年(2012)的国庆节是星期一。
2024-03-31 22:00:40 264 1
原创 蓝桥杯——世纪末的星期
1999 年的 12 月 31 日是星期五,请问:未来哪一个离我们最近的一个世纪未年(即 xx99 年)的 12月 31 日正好是星期天(即星期日)?引用datetime函数,分别遍历1999年以后的世纪末,使用weekday函数来判断条件,再使用year库来输出结果。还有人称今后的某个世纪末的 12月31日,如果是星期一则会...有趣的是,任何一个世纪末的年份的 12月31 日都不可能是星期。请回答该年份(只写这个4位整数,不要写12月31等多余信息)于是,“谣言制造商”又修改为星期日.s。
2024-03-31 21:46:00 513 1
原创 蓝桥杯——马虎的算式
但结果却很戏剧性,他的答案竟然是对的!因为 36 * 495 = 396 * 45 = 17820类似这样的巧合情况可能还有很多,比如:27 * 594 = 297 * 54假设 a b c d e 代表1~9不同的5个数字(注意是各不相同的数字,且不含0)能满足形如: ab * cde = adb * ce 这样的算式一共有多少种呢?请你利用计算机的优势寻找所有的可能,并回答不同算式的种类数。首先使用双重循环来限定ab和cde的范围,然后使用字符串和列表还有集合对元素进行筛选和判定,最后累加得到结果。
2024-03-30 20:13:14 274
原创 蓝桥杯——分机号
首先使用permutations函数对所有可能的号码进行排序,然后进行遍历,由于生成的是元组,所以我们使用一个列表num2来接收元组里的每一个数,最后的判断条件是,如果对num2进行从小到大排序后和num2原来的排序一样,就证明这个结果是符合的,最最后把结果累加起来就行。
2024-03-30 19:03:02 295
原创 蓝桥杯——直线
四重循环把每两个点的斜率和截距都表示出来,if x1==x2是为了除去不存在斜率的情况并增加在集合里,最后再加上所有的列数即可表示所有的直线数目。
2024-03-29 19:17:32 824 1
原创 蓝桥杯——哥德巴赫分解
首先定义一个判定素数的函数(qwe),然后利用二维数组把满足条件的情况分别加入,这里选择添加的类型是列表,把每一个列表中的第一个值添加到另一个列表中,在另一个列表中寻找出最大值即可。
2024-03-29 17:19:49 343 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人