今天是2021年省赛的第一题,大家加油啊!~
每天刷一道题,话不多说,先刷近两年的题吧,从2020的开始,如果有一起的可以加入我们!!!
一起来刷题,冲击国赛!!!
扫码 我的主页 网页左边下方 群二维码。
加入方式:可以在下方的微信名片加我,然后拉你入群。(记得备注暗号:我要拿国奖)
2021年第十二届蓝桥杯赛题总览
2020年的题就是这些,类型分为两种,分别是结果填空和程序设计,我们每天刷一道题,省赛没问题!
直线 (题目)
(本题总分:5分)
官方练习系统:https://www.lanqiao.cn/problems/1449/learning/
—>【问题描述】
—>【结果描述】
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
解析
通过阅读题干,本题——难度一般:⭐⭐
考察类型:枚举、数论、哈希表
考察知识点:斜率、集合、截距
分析:
代码
Python代码实现:
法一:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2022/3/6 18:33
# @Author : 府学路18号车神
# @Email :yurz_control@163.com
# @File : Day12.py
axis = [[x, y] for x in range(20) for y in range(21)] # 首先创建一个二维矩阵,代表xy坐标系
docker = set() # 设置一个容器集合,哈希表
for location in axis: # 第一次遍历坐标系,取一个点
x1, y1 = location[0], location[1] # 取到第一个点的x、y坐标值
for place in axis:
x2, y2 = place[0], place[1] # 取到第二个点的x、y坐标值
# 首先排除垂直的情况, 当x值为相同时,则代表垂直
if x1 == x2:
continue
# 求取两点之间直线的斜率k,截距b
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) # 直接计算容器内的长度,然后再加上垂直的部分,可得: 40257
法二:
import os
import sys
# 请在此输入您的代码
a = set()
for i in range(20):
for j in range(21):
for k in range(20):
for l in range(21):
if l==j or k==i:
continue
ki=(l-j)/(k-i)
b=(k*j-i*l)/(k-i)
a.add((ki,b))
print(len(a)+20+21)
速度都很快哦~
可以得出最终的结果为:40257
今天2021年省赛第二题,加油!
由此,我们可以快速得出结果,验证完毕!
今天开刷第 十二 天,难度一般,欢迎大家加入,一起变强,一起自律,一起上国赛!!!
今天的题目一般哈,有不同解法的可以在下面留言哦!~
往期刷题路线:
刷题路线 | Detail |
---|---|
2020年 | |
Day-01 | 门牌制作 |
Day-02 | 寻找2020 |
Day-03 | 跑步锻炼 |
Day-04 | 蛇形填数 |
Day-05 | 排序 |
Day-06 | 装饰珠 |
Day-07 | 成绩统计 |
Day-08 | 单词分析 |
Day-09 | 数字三角形 |
Day-10 | 平面切分 |
– | – |
2021年 | |
Day-11 | 卡片 |
官方刷题练习系统:http://lx.lanqiao.cn/
ღ( ´・ᴗ・` )
❤