1 真题
文章图片
2 解析 难度系数:??
考察题型:枚举数论
涉及知识点: 集合docker=set()斜率截距公式(k,b)
思路分析:3 代码
一条普普通通的直线,竟然能变出这么多花样?直线,接招!( ?? ω ?? )?
首先创建二维列表存放坐标系,然后二重循环遍历,给每个坐标点赋初值。
因为要统计不同的直线,所以用直线的性质:斜率和截距 来区分,并存放到集合容器里,
最后一点小细节,当斜率不存在时,k会报错,
所以单独计算,最后直接加上20条垂直x轴的直线。
#直线
points=[[x,y] for x in range(20) for y in range(21)] #创建二维列表:代表xy坐标系
docker=set()#创建集合属性的容器:因为集合里的元素不会重复
for i in points:#二重循环遍历每个坐标
x1,y1=i[0],i[1]#注意书写格式:a,b=c,d
for j in points:
x2,y2=j[0],j[1]
if x1==x2:#特殊情况:直线垂直时斜率不存在,先跳过最后计算
continue
k=(y2-y1)/(x2-x1)#斜率公式
b=(x2*y1-x1*y2)/(x2-x1)#截距公式
if (k,b) not in docker:#存入容器里没有的(斜率,截距)对
docker.add((k,b))
print(len(docker)+20)#输出结果:容器的长度40237+斜率不存在的20种情况=40257
【备战蓝桥杯|2021年第十二届蓝桥杯省赛Python组(真题+解析+代码)(直线)】我写的是关于蓝桥杯的系列题解,感谢关注我的朋友们,我会持续输出高质量文章
蓝桥杯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
推荐阅读
- 备战蓝桥杯|2020年第十一届蓝桥杯省赛Python组(真题+解析+代码)(作物杂交)
- 备战蓝桥杯|2021年第十二届蓝桥杯省赛Python组(真题+解析+代码)(时间显示)
- Java|八十一、Java算法练习打卡(三题)
- 蓝桥杯|【第六届蓝桥杯】奇妙的数字
- 第二次月计划|2年学完6个清华CS类硕士学位之第五次周计划
- 蓝桥杯|第七届蓝桥杯国赛 机器人塔
- Python|【蓝桥杯真题】提升篇 详解 Python
- 蓝桥杯|蓝桥杯python(扫地机器人)
- 第六届蓝桥杯国赛:机器人繁殖从公式推导到C++/Python的实现