1 真题
文章图片
2 解析 难度系数:???
考察题型:枚举 查找 数论
涉及知识点: 模拟 二分查找 组合数
思路分析:标准算法思路参考:
【蓝桥杯|2021年第十二届蓝桥杯省赛Python组(真题+解析+代码)(杨辉三角形)】这道题有亿点难,考场上我应该大概率做不出来,
不过没关系,暴力破解能骗一半的分数!q(≧▽≦q)
第十二届蓝桥杯B组C/C++省赛—H题(杨辉三角)_思维题_萌小帝的博客-CSDN博客
3 代码 暴力破解版-10分
#杨辉三角形
n = int(input())
if n == 1:
print(1)
else:
a = [0,1,0]
index = 1
flag = True
while flag==True:
i = 1
tmp = []
for i in range(1,len(a)):
t = a[i]+a[i-1]
tmp.append(t)
index += 1
if n == t:
print(index)
flag=False
break
tmp.insert(0,0)
tmp.append(0)
a = tmp
算法版-20分
#杨辉三角形
# 组合值模板
def C(a, b):
res = 1
fz = a #分子
for fm in range(1,b+1): #1~b
res = res * fz // fm#递推公式=分子//分母
fz -= 1
if res > n:
return res
return res
#二分查找
def check(k): #k:斜行
l, r = 2*k, n#赋初值left:2k right:n
while l < r:
mid = l + r >> 1 # >>1:相当于(l+r)//2
if C(mid, k) >= n:
r = mid
else:
l = mid + 1if C(r, k) != n:
return False
print(r * (r + 1) // 2 + k + 1)#查找位置
return Truen = int(input())
if n == 1:
print(1)
else:
for k in range(16,0,-1):#从16斜行枚举
if check(k)==True:
break
我写的是关于蓝桥杯的系列题解,感谢关注我的朋友们,我会持续输出高质量文章蓝桥杯python组十二届省赛真题+解析+代码(通俗易懂版)_编程有了思路-CSDN博客_蓝桥杯大赛python小蓝有很多数字卡片,每张卡片上都是数字 0 到 9。小蓝准备用这些卡片来拼一些数,他想从 1 开始拼出正整数,每拼一个,就保存起来,卡片就不能用来拼其它数了。小蓝想知道自己能从 1 拼到多少。例如,当小蓝有 30 张卡片,其中 0 到 9 各 3 张,则小蓝可以拼出 1 到 10,但是拼 11 时卡片 1 已经只有一张了,不够拼出 11。现在小蓝手里有 0 到 9 的卡片各 2021 张,共 20210 张,请问小蓝可以从 1拼到多少?https://blog.csdn.net/m0_55148406/article/details/122774029
推荐阅读
- 蓝桥杯|2021年第十二届蓝桥杯省赛Python组(真题+解析+代码)(路径)
- 蓝桥杯Python专项|第十三届蓝桥杯大赛软件组省赛Python大学A组不完全题解
- 蓝桥杯|2021年第十二届蓝桥杯大赛省赛python大学组真题加解析(更新中)
- 蓝桥杯|第八届蓝桥杯大赛试题及题解
- 蓝桥杯|2021年第十二届蓝桥杯省赛Python组(真题+解析+代码)(货物摆放)
- 蓝桥杯|蓝桥杯大赛 青少年创意编程 第十二届 C++组
- 蓝桥杯|蓝桥杯——阶乘计算
- 蓝桥杯|蓝桥杯 试题 基础练习 杨辉三角形
- leetcode|LeetCode 5955. 摘水果 题目解析