蓝桥杯
M4chael1
这个作者很懒,什么都没留下…
展开
-
【打卡-蓝桥杯】Day 18
题目1 :算法提高 最长公共子序列 解题思路 动态规划,先从一个开始找, 如果相等,arr[i][j] = arr[i-1][j-1]+1 否则 找 上面和左面 最大的 代码 def lcs(str1, str2): l1 = len(str1) l2 = len(str2) arr = [[0 for _ in range(l1 + 1)] for _ in range(l2 + 1)] for i in range(1, l1+1): for j原创 2022-03-22 19:02:19 · 308 阅读 · 0 评论 -
【打卡-蓝桥杯】Day 17
题目1:算法训练 最小乘积(基本型) 解题思路 这题就是,用内置函数,一个数组升序,一个数组降序,对应位置相乘 代码 t = int(input()) for _ in range(t): ans = 0 n = int(input()) arr1 = list(map(int, input().split())) arr2 = list(map(int, input().split())) numList1 = sorted(arr1) numLis原创 2022-03-21 22:38:57 · 305 阅读 · 0 评论 -
【打卡-蓝桥杯】Day 16
题目1:算法训练 寻找数组中最大值 解题思路 用内置函数max() 求最大值 用内置函数index() 找最大值索引 代码 n = int(input()) list = list(map(int, input().split())) max = max(list) index = list.index(max) print(max, index) 题目2:算法训练 预测身高 解题思路 没啥好说的,判断求解,注意输出格式 代码 data = list(map(float, input().sp原创 2022-03-20 20:50:35 · 270 阅读 · 0 评论 -
【打卡-蓝桥杯】Day 15
题目1:算法训练 区间k大数查询 解题思路 切片后排序 代码 n = int(input()) # 序列长度 li = list(map(int, input().split())) m = int(input()) # 询问个数 ans = [] for i in range(m): l, r, k = map(int, input().split()) templi = li[l-1:r] templi.sort(reverse=True) ans.ap原创 2022-03-12 17:56:54 · 146 阅读 · 0 评论 -
【打卡-蓝桥杯】Day 14
题目1: 算法训练 K好数 解题思路 动态规划 代码 """ 1 2 3 0 1 3 8 1 1 2 5 2 1 2 5 3 1 3 8 """ k, l = map(int, input().split()) mod = 1000000007 ans = 0 dp = [[0 for _ in range(l + 1)] for _ in range(k)] for i in range(k): dp[i][1] = 1 fo原创 2022-03-11 21:24:26 · 120 阅读 · 0 评论 -
【打卡-蓝桥杯】Day 13 -- 一个质数肯定不会被小于它的质数除尽
题目1:算法训练 Torry的困惑(基本型) 解题思路: 一个质数肯定不会被小于它的质数除尽 代码 def is_prime(num): for i in tmp: if num % i == 0: return False return True n = int(input()) tmp = [2] ans = 2 i = 3 while True: if len(tmp) >= n: break if原创 2022-02-25 12:35:06 · 131 阅读 · 0 评论 -
【打卡-蓝桥杯】Day 12
题目1:算法训练 5-1最小公倍数 解题思路 最大公约数:辗转相除法 c = a%b c != 0 => c = b % c => … 最小公倍数: a*b/最大公约数 代码 # 最大公约数 def gcd(a, b): c = a % b while c != 0: a = b b = c c = a % b return b a, b = map(int, input().split()) # 最小公倍数原创 2022-02-24 13:56:09 · 204 阅读 · 0 评论 -
【打卡-蓝桥杯】Day 11
题目1:算法训练 1的个数 解题思路: 遍历,然后利用列表中的count()方法 代码 n = int(input()) ans = 0 for i in range(1,n+1): ans += list(str(i)).count("1") print(ans) 题目2:算法训练 2的次幂表示 解题思路 代码 ...原创 2022-02-23 19:34:46 · 198 阅读 · 0 评论 -
【打卡-蓝桥杯】Day 10
题目1:基础练习 Huffuman树 解题思路 利用排序,找到两个最小的数 由问题描述可知,n个数循环n-1次 代码 n = int(input()) li = list(map(int, input().split())) val = 0 for i in range(n-1): li.sort() val += li[0] + li[1] li_val = li[0] + li[1] li.pop(0) li.pop(0) li.append(li_原创 2022-02-22 19:57:27 · 210 阅读 · 0 评论 -
【打卡-蓝桥杯】Day 9
题目1 :基础练习 完美的代价 解题思路 贪心算法 判断能不能变成回文数 找贪心策略,交换最少。参考链接 代码 # 判断回文 def is_pal(N, listStr): count = 0 for i in range(26): if listStr.count(chr(ord('a') + i)) % 2 != 0: count += 1 if count > 1: print("Impos原创 2022-02-20 13:18:15 · 202 阅读 · 0 评论 -
【打卡-蓝桥杯】Day 8
题目 1 :基础练习 2n皇后问题 解题思路 代码原创 2022-02-19 13:26:08 · 197 阅读 · 0 评论 -
【打卡-蓝桥杯】Day 7
题目1:基础练习 芯片测试 解题思路 因为好的芯片多于坏的,所以如果是好芯片,那个被测试为 1 的 总数 > n/2 代码 n = int(input()) arr = [list(map(int, input().split())) for _ in range(n)] for i in range(n): count = 0 for j in range(n): if arr[j][i] == 0: # 因为 坏芯片少,所以计算坏的 c原创 2022-02-17 13:11:01 · 234 阅读 · 0 评论 -
【打卡-蓝桥杯】Day 6 ----ASCII chr(ord(‘A‘))
题目1:基础练习 矩形面积交 解题思路: 找相交处,矩形的点坐标 代码 list1 = list(map(float, input().split())) list2 = list(map(float, input().split())) x1 = max(min(list1[0], list1[2]), min(list2[0], list2[2])) x2 = min(max(list1[0], list1[2]), max(list2[0], list2[2])) y1 = max(min(li原创 2022-02-16 14:38:26 · 337 阅读 · 0 评论 -
【打卡-蓝桥杯】Day 5 --- lower() 小写
题目 1:基础练习 时间转换 解题思路 取余,整除 代码 t = int(input()) print(t // 3600, end=':') t = t % 3600 print(t // 60, end=':') t = t % 60 print(t) 题目 2:基础练习 字符串对比 解题思路 if 判断 其中使用 str.lower() 将字符串变为小写 代码 def contrast(str1, str2): if len(str1) != len(str2):原创 2022-02-15 17:37:27 · 193 阅读 · 0 评论 -
【打卡-蓝桥杯】Day 4--------不能使用split(‘ ‘),测试用例 最后一个数后有空格,直接split()
题目 1: 基础练习 十进制转十六进制 解题思路 方法一:递归,短除法 方法二:format 十进制转十六进制:format(n, ‘X’) 十进制转八进制:format(n, ‘o’) 十六进制转十进制:int(n, 16) 八进制转十进制:int(n, 8) 代码 # 方法1 递归 li = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'] def hexadecimal(a): if a > 0:原创 2022-02-14 23:52:58 · 345 阅读 · 0 评论 -
【打卡-蓝桥杯】Day 3 ---切片 逆序list[::-1]
题目 1 :基础练习 杨辉三角形 解题思路 ”第i+1行是(a+b)i的展开式的系数“,因此 使用 CikC_{i}^{k}Cik 计算 方法二:二维数组 代码 def factorial(n): """ 计算阶乘 :param n:要计算的数 :return: 结果 """ f = 1 for i in range(1, n+1): f = f * i return f def cik(n, k): """原创 2022-02-13 18:02:37 · 684 阅读 · 0 评论 -
【打卡-蓝桥杯】Day 2 --- format输出格式、ASCII
题目 1 基础练习 闰年判断 给定一个年份,判断这一年是不是闰年。 当以下情况之一满足时,这一年是闰年: 年份是4的倍数而不是100的倍数; 年份是400的倍数。 其他的年份都不是闰年。 输入包含一个整数y,表示当前的年份。 输出一行,如果给定的年份是闰年,则输出yes,否则输出no。 解题思路 if判断 代码 y = int(input()) if (y % 4== 0 and y % 100 != 0) or y % 400 == 0: print('yes') else:原创 2022-02-11 18:13:12 · 647 阅读 · 0 评论 -
【打卡-蓝桥杯】Day 1 --- %.7f 格式化输出
题目 1 基础练习 A+B问题 输入的第一行包括两个整数,由空格分隔,分别表示A、B。 输出一行,包括一个整数,表示A+B的值。 思路 输入后使用split分割 代码 a, b = map(int, input().split()) print(a+b) 题目 2 基础练习 Fibonacci数列 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。 输入包含一个整数n。 输出一行,包含一原创 2022-02-10 17:35:04 · 471 阅读 · 0 评论