当前位置:   article > 正文

2021年第十二届蓝桥杯python组省赛_在平面直角坐标系中构建20个点(训练集),且分为y1和y2两类(能够满足线性可分),

在平面直角坐标系中构建20个点(训练集),且分为y1和y2两类(能够满足线性可分),

前言:

最近忙着备战期末考,刷算法的时间是越来越少了...


目录

填空题

卡片

直线

货物摆放

回路计数

路径

编程大题

时间显示

杨辉三角

左孩子右兄弟

异或数列

括号序列


填空题


卡片

题目:

小蓝有很多数字卡片,每张卡片上都是数字 0 到 9。 小蓝准备用这些卡片来拼一些数,他想从 1 开始拼出正整数,每拼一个, 就保存起来,卡片就不能用来拼其它数了。 小蓝想知道自己能从 1 拼到多少。 例如,当小蓝有 30 张卡片,其中 0 到 9 各 3 张,则小蓝可以拼出 1 到 10, 但是拼 11 时卡片 11 已经只有一张了,不够拼出 11。 现在小蓝手里有 0 到 9 的卡片各 2021 张,共 20210 张,请问小蓝可以从 1 拼到多少? 提示:建议使用计算机编程解决问题

思路:

for循环走一遍,直到其中一个数字不够用

代码:

  1. def main():
  2. nums=[2021 for _ in range(10)]
  3. n=1
  4. while 1:
  5. for i in str(n):
  6. nums[int(i)] -= 1
  7. if nums[int(i)]<0:
  8. return n-1
  9. n += 1
  10. print(main())

答案:3181


直线

题目:

在平面直角坐标系中,两点可以确定一条直线。

给定平面上 20 × 21 个整点 {(x, y)|0 ≤ x < 20, 0 ≤ y < 21, x ∈ Z, y ∈ Z},即横 坐标是 0 到 19 (包含 0 和 19) 之间的整数、纵坐标是 0 到 20 (包含 0 和 20) 之 间的整数的点。

请问这些点一共确定了多少条不同的直线。

思路:

斜率k=0和无穷的线个数有m+n个,然后创建一个set集合,加进每个点对应k和b的值,最后len一下

代码:

  1. def main(m,n):
  2. res=set()
  3. point=[[x,y] for x in range(m) for y in range(n)]
  4. for i in range(len(point)-1):
  5. for j in range(i+1,len(point)):
  6. x1,y1=point[i][0],point[i][1]
  7. x2,y2=point[j][0],point[j][1]
  8. if x1==x2 or y1==y2:
  9. continue
  10. else:
  11. k=(y2-y1)/(x2-x1)
  12. b=(x2*y1-x1*y2)/(x2-x1)
  13. #print((x1,y1),(x2,y2),(k,b))
  14. res.add((k,b))
  15. return len(res)+m+n
  16. print(main(20,21))

答案:40257


货物摆放

题目:

小蓝有一个超大的仓库,可以摆放很多货物。

现在,小蓝有n箱货物要摆放在仓库,每箱货物都是规则的正方体。小蓝规定了长、宽、高三个互相垂直的方向,每箱货物的边都必须严格平行于长、宽、高。

小蓝希望所有的货物最终摆成一个大的立方体。即在长、宽、高的方向上分别堆L、W、H的货物,满足n=L×W×H

给定n,请问有多少种堆放货物的方案满足要求。

例如,当n=4时,有以下6种方案:1×1×

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/1013535
推荐阅读
相关标签
  

闽ICP备14008679号