蓝桥杯赛前真题 Python组 Day 4

试题 算法训练 共线

资源限制

内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s

问题描述

  给定2维平面上n个整点的坐标,一条直线最多能过几个点?

输入格式

  第一行一个整数n表示点的个数
  以下n行,每行2个整数分别表示每个点的x,y坐标。

输出格式

  输出一个整数表示答案。

样例输入

5
0 0
1 1
2 2
0 3
2 3

样例输出

3

说是排序,结果还是枚举解决

50%可以了

n = int(input())
p = []
for i in range(n):
    x,y = map(int,input().split())
    p.append([x,y])

ans = 0

def kkk(x1,x2,y1,y2):

    k = (y1-y2)/(x1-x2)
    b = 0.5*(y1+y2) - 0.5*k*(x1+x2)    


    return [k,b]

mark = []
for i in range(n):
    for j in range(i+1,n):
        tmpans = 2
        x1 = p[i][0]
        y1 = p[i][1]
        x2 = p[j][0]
        y2 = p[j][1]
        if x1 == x2:
            continue       
        tmp = kkk(x1,x2,y1,y2)
        k,b = tmp[0],tmp[1]
        if tmp in mark:
            continue
        mark.append(tmp)
        for x in range(n):
            if p[x] == p[i] or p[x] == p[j]:
                continue
            if p[x][1] == k*p[x][0] + b:
                tmpans += 1
        ans = max(ans,tmpans)
        
print(ans)

以下是一份可能的蓝桥杯赛前训练计划: 1. 熟悉考试内容和题型:了解蓝桥杯考试的内容和题型,包括编程语言、数据结构与算法、计算机基础知识和实践能力等方面的内容,并准备相关资料和练习题目。 2. 制定学习计划:根据自己的水平和时间安排,制定一份具体的学习计划,包括每天的学习目标、练习时间和计划完成时间等,以保证充分利用时间进学习和练习。 3. 提高编程能力:进编程练习,提高编程能力,特别是数据结构和算法的实践能力。可以参加在线编程竞赛、练习题目和刷题等方式来提高编程能力。 4. 提高计算机基础知识:学习计算机基础知识,包括计算机成原理、操作系统、计算机网络、数据库等方面的知识,以提高程序的效率和优化能力。 5. 实践能力:进实践练习,包括操作系统和网络配置、数据库设计和开发、Web开发等方面的实践,以提高实践能力和解决问题的能力。 6. 团队协作:参加团队协作项目,锻炼团队合作和沟通能力,同时学习项目管理和软件开发流程等相关知识。 7. 模拟考试:进模拟考试,以检验自己的学习成果和考试准备情况,同时找出自己的弱点和不足,加以改进和提高。 8. 调整状态:保持良好的身体状态和心态,保证充足的睡眠和饮食,调整好心态,保持积极向上的心态。 以上是一份可能的蓝桥杯赛前训练计划,具体的训练计划需要根据个人情况和水平来制定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值