
蓝桥杯
天威难测
NJUCM中药学专业中一个自学计算机的羽毛球爱好者
展开
-
【蓝桥杯】【python】省赛真题等差数列
问题描述思路首先把所有数按照顺序排列,然后计算每两个数的差值,计算最大公因数后即可代码# 求最大公因数def cal(temp_1, temp_2): if(temp_1 == temp_2): return(temp_1) else: m = max(temp_1, temp_2) n = min(temp_1, temp_2) r = m % n while(r != 0):原创 2022-03-28 14:24:53 · 893 阅读 · 2 评论 -
【蓝桥杯】【python】排队接水
问题描述思路简单的排序,首先按照时间升序排列,将时间最短的最先接完。源代码# main(n, m) = map(int, input().split())Time = [0 for _ in range(n)]line = input().split()for i in range(n): Time[i] = int(line[i])Time.sort()Total_time = 0Group = [[0 for _ in range(int(n / m))] for _原创 2022-03-01 15:32:31 · 987 阅读 · 0 评论 -
【蓝桥杯】【python】扫地机器人-烂尾楼+1
问题描述算法思路Q :**已清洁区域的边界。**以最左边作为基准,已经打扫好的区域数量,在最开始时候定义为 0。T :**扫地机器人用时。**所以对于每个机器人来说,它的最大清洁范围就是左右两边的 (T / 2)的距离之内。x : 机器人当前的坐标。首先判断:x - (T / 2) < Q也就是说机器人的左清洁范围要在边界左边,不然就直接退出然后判断下来对于某个机器人,共有如下几种情况:1 机器人位置在边界右边,所以此时需要更新边界的范围,将边界更新到机器人打扫的右边界:Q =原创 2022-02-28 18:07:51 · 8060 阅读 · 0 评论 -
【蓝桥杯】【python】Kac给糖果你吃 - 我建的烂尾楼 +1
# main(n, m) = map(int, input().split())candy = [0 for _ in range(m)]line = input().split()for i in range(m): candy[i] = int(line[i])candy.sort(reverse = True)print(sum(candy[0 : m]))思路很简单,唔。。。50分原创 2022-02-23 21:33:17 · 236 阅读 · 0 评论 -
【蓝桥杯】【python】拿金币
问题描述思路想用动态规划,并且注意限定如果走到边界的时候# dpdef dp(x, y): if(x == n - 1 and y == n - 1): return(gold[x][y]) elif(x == n - 1): return(gold[x][y] + dp(x, y + 1)) elif(y == n - 1): return(gold[x][y] + dp(x + 1, y)) else:原创 2022-02-23 21:14:07 · 769 阅读 · 1 评论 -
【蓝桥杯】【python】夺宝奇兵
问题描述思路描述其实和之前做的“数字三角形”那道题目差不多啦,也是从上往下遍历,定义一个从这个数开始保存最大数的列表,具体思路可以看我之前的文章:https://blog.youkuaiyun.com/m0_53347750/article/details/122472202源码同样的,这道题目用简单的动态规划是不行的:# dpdef dp(x, y): global value global n if(x == n - 1): return(value原创 2022-02-23 12:53:23 · 8617 阅读 · 0 评论 -
【蓝桥杯】【python】拦截导弹
题目描述思路最初我想把整体高度逆序排布为 Height[ n ] ,然后利用动态规划创建一个列表 dp[ i ],意思是第 i 个导弹之前比它低的导弹数量所以状态转移方程:dp[ i ] = max{dp[ j ] + 1, 1}(0 <= j < i)最开始代码如下:Height = input().split()H = [0 for _ in range(len(Height) + 1)]dp = [0 for _ in range(len(Height) + 1)]原创 2022-02-23 10:00:46 · 1681 阅读 · 0 评论 -
【蓝桥杯】【python】和最大子序列
问题描述初始思路最初想用动态规划,令 lis[] 为得到的数组,dp[i] 为到第 i 个数字时求和达到最大的值,所以可以得到递归式:dp[i] = max(dp[i - 1] + lis[i], dp[i])并且要注意,由于代码从 0 开始的特殊性,所以首先如果总共有 n 个数,那就预定义 dp 列表中有 n + 1 个位置,并且把第一个预定义成0。初始代码# mainn = int(input())lis = [0 for _ in range(n + 1)]dp = [0 for原创 2022-02-20 17:23:17 · 412 阅读 · 0 评论 -
【蓝桥杯】【python】蓝肽子序列-烂尾楼求助帖
题目描述算法思路用数字来等效理解:两串每个数都不同的数字,例如“123456”和“3495678”,在允许间隔的条件下,寻找其中相同子排序方式,就是“3456”。首先将“蛋蓝质”按照大写开头分割成每个部分以蛋蓝质存放在两个列表里面,然后可以按照寻找两个字符串之间最长的公共子序列的做法:建立一个大小为 n * m 的二维数组dp,其中dp[ i ] [ j ]代表当第一个序列取到第i个元素,第二个序列取到第j个序列的时候,可以取到的最长公共子序列。这是我找的一篇推文:https://blog.原创 2022-02-19 16:56:54 · 453 阅读 · 1 评论 -
【蓝桥杯】【python】公交汽车
利用动态规划的想法解题,题目是从C语言网上找到的原创 2022-02-19 14:47:48 · 576 阅读 · 0 评论 -
【蓝桥杯】【python】高僧斗法
问题描述思路(Nim博弈)Nim博弈在这篇文章写的很好:https://blog.youkuaiyun.com/qq_41923622/article/details/86707861因为数学功底不扎实,所以我在这边只说结论:以题目给出案例为例:将两个和尚之间的距离分别拿出来生成一个新的列表也即是:3 (由 5 - 1 - 1,得到);3 (由9 - 5 - 1 得到)首先将其转换成二进制再异或比较得到结果异或用符号^,例如2 ^ 3 = 1,即分别求出2和3的二进制,再进行比较,相同为0,不相同为原创 2022-02-03 19:17:41 · 1076 阅读 · 0 评论 -
【蓝桥杯】【python】地宫取宝
题目描述代码我利用的C语言网bobby同学的,但原文没有解释,本文加上了我的一些理解,附上原文代码https://blog.dotcpp.com/a/77354整体思路深度遍历我的理解就是一头扎到底,一个节点继续往下走,直到走不通或达到限制要求为止这道题目也是一样,利用一个数组存储到这个点的时候,某一个数量的宝物在确定最大价值的条件下有几种方案记忆性递归例如计算斐波那契数时,另外创建一个数组来存储每一个已经完成计算的斐波那契数,以便用时调用。而普通的递归计算f(4)时还需要计算f(3)+原创 2022-02-02 01:27:42 · 831 阅读 · 1 评论 -
【蓝桥杯】【python】危险系数
题目描述思路找出起始点到最终点所有的路径,然后在对他们进行计数,如果计数达到路径数,也就可以理解为每种方法都需要经过这个点。dfs函数的定义分别定义: global vis # 用于记录已经访问过的点,注意,每次深度优先达到最低端都会重新定义回0,所以如果想输出那就得在函数里面输出 global vis_time # 记录每个点访问的次数,例如vis_time[1]意思是第二个点被访问的次数 global from_channel # 例如from_channel[i] =原创 2022-01-22 12:46:08 · 312 阅读 · 0 评论 -
【蓝桥杯】【python】分糖果
初步思路题目表述不明,这个给糖果的步骤其实有好几种理解,经过尝试我知道是:先拿出一半,再一起给出去。我准备建立一个N * 2(N是小朋友个数)的列表,每一行上第一个用于存放这一个小孩得到的糖果数,第二个用于存放这个小孩将要给出去的糖果数,可以通过计算前一个后一个小孩糖果数量的一半得到值...原创 2022-01-21 15:59:00 · 3766 阅读 · 0 评论 -
【蓝桥杯】【python】兰顿蚂蚁
思路,其实没什么思路,就是按照他说的进行代码描述,利用函数分别表述在黑块和白块时候的操作方法然后将方位用1…4进行替代其实我在数据的输入上出了一些问题,我整理在我另外一篇文章里面了https://blog.youkuaiyun.com/m0_53347750/article/details/122568356代码global boardglobal towardglobal xglobal ydef black(): global board global toward .原创 2022-01-20 22:31:07 · 3826 阅读 · 0 评论 -
【蓝桥杯】【python】能量项链
问题描述思路最初分析题目发现,只要每次都把最小值放在中间,例如:题目中给出的数据,第一步就把2给放在中间,进行间接消除;然后再依次寻找最小值进行消除。计算聚合能量的函数所以首先写一个函数,用于输入最小值的位置信息后,计算得到聚合能量操作后得到的能量以及项链编号:global necklaceglobal redef cal(i): global necklace global re if(i == len(necklace) - 1): re =原创 2022-01-18 23:10:44 · 441 阅读 · 0 评论 -
【蓝桥杯】【python】Torry的困惑(基本型)
问题描述Torry从小喜爱数学。一天,老师告诉他,像2、3、5、7……这样的数叫做质数。Torry突然想到一个问题,前10、100、1000、10000……个质数的乘积是多少呢?他把这个问题告诉老师。老师愣住了,一时回答不出来。于是Torry求助于会编程的你,请你算出前n个质数的乘积。不过,考虑到你才接触编程不久,Torry只要你算出这个数模上50000的值。输入一个数n,表示前几个质数,然后输出前n个质数乘积对50000的模最初思路最初准备首先定义一个函数,用于判断是否是质数,然后在主函数中循环,原创 2022-01-14 20:26:27 · 463 阅读 · 0 评论 -
【蓝桥杯】【python】数字三角形
第十一届蓝桥杯省赛题目【数字三角形】,用python语言编写,主要利用动态规划求解的思想原创 2022-01-13 15:46:50 · 3946 阅读 · 2 评论