蓝桥杯练习系统(算法训练)ALGO-967 共线

资源限制

内存限制: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

数据规模和约定

  n<=1500,数据保证不会存在2个相同的点。
  点坐标在int范围内

暴力(只有87分)

#include<iostream>
using namespace std;
const int N=1505;
typedef struct Point{
	int x;
	int y;
}Point; 
Point point[N];
int n;
int ans;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>point[i].x>>point[i].y;
	}
	for(int i=1;i<=n;i++){
		for(int j=i+1;j<=n;j++){//形成斜率 
			int cnt=0;
			int xx=point[j].x-point[i].x;
			int yy=point[j].y-point[i].y;
			for(int k=1;k<=n;k++){//找点,使之斜率相等或本身的那个点 
				if(xx*(point[i].y-point[k].y)==yy*(point[i].x-point[k].x)){
					cnt++;
				}
			}
			ans=max(ans,cnt); 
		}
	}
	cout<<ans<<endl;
	return 0;
} 

哈希表(但是5.11版本不能用)

#include <iostream>
#include <unordered_map>
#include <math.h>
using namespace std;
const int N=1505;
typedef struct Point{
	int x;
	int y;
}Point; 
Point point[N];

int main() {
    int n;
    cin >> n;

    for (int i = 1; i <=n; i++) {
        cin >> point[i].x >> point[i].y;
    }
    int result = 0;
    if (n <= 2) {
        result=n;
    }else{
    	unordered_map<double, int> slopeCount;
    	for (int i =1; i <=n; i++){
	        for (int j =i+1; j <=n; j++){
	            int dx = point[j].x - point[i].x;
	            int dy = point[j].y - point[i].y;
	            double slope; 
	            if(dx==0){
	            	slope=0x3f3f3f3f;
				}else{
					slope=(double)dy / dx;
				} 
	            slopeCount[slope]++;
	            result= max(result,slopeCount[slope]);//直线斜率相等,同一直线上的点个数n和斜率相等的个数的关系:n(n-1)/2=斜率相等的个数 
	        }
   		}
   		result=sqrt(2*result)+1;
	}
	cout<<result<<endl;
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/493014.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

c语言--跳出continue、break

C 语言中的 continue 语句有点像 break 语句。但它不是强制终止&#xff0c;continue 会跳过当前循环中的代码&#xff0c;强迫开始下一次循环。 对于 for 循环&#xff0c;continue 语句执行后自增语句仍然会执行。对于 while 和 do…while 循环&#xff0c;continue 语句重新…

CI860K01 3BSE032444R1 参数说明书

ABB CI860K01 3BSE032444R1是一款ABB公司生产的通信接口模块。 这款模块是专为工业自动化环境设计的&#xff0c;能够在各种设备之间提供稳定和可靠的数据传输接口。它采用了先进的通信技术和严格的生产工艺&#xff0c;确保了产品的高质量和性能。此外&#xff0c;它的设计合…

antdp | 菜单展示-菜单路由配置

扩展的路由配置 Layout 插件会基于 umi 的路由&#xff0c;封装了更多的配置项&#xff0c;支持更多配置式的能力。新增&#xff1a; 侧边栏菜单配置布局路由级别展示 / 隐藏相关配置与权限插件结合&#xff0c;配置式实现权限路由的功能 示例如下&#xff1a; //config/rou…

抗干扰段码屏驱动芯片/ LCD液晶屏驱动/仪器仪表液晶驱动IC-VK1C21D/DA FAE支持

产品型号&#xff1a;VK1C21D/DA 产品品牌&#xff1a;永嘉微电/VINKA 封装形式&#xff1a;SOP28/SSOP28 可定制裸片&#xff1a;DICE(COB邦定片)&#xff1b;COG(邦定玻璃用) 工程服务&#xff0c;技术支持&#xff01; 概述&#xff1a; VK1C21D/DA是一个点阵式存储映射…

PTA金字塔游戏

幼儿园里真热闹&#xff0c;老师带着孩子们做一个名叫金字塔的游戏&#xff0c;游戏规则如下&#xff1a; 首先&#xff0c;老师把孩子们按身高从高到矮排列&#xff0c;选出最高的做队长&#xff0c;当金字塔的塔顶&#xff0c;之后在其余小朋友里选出两个最高的&#xff0c;…

【基于HTML5的网页设计及应用】——当前日期

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

串口IAP介绍

一、STM32编程方式 &#xff08;1&#xff09;在线编程&#xff08;ICP&#xff0c;in circuit programming&#xff09; 系统存储器&#xff1a;留给ST写启动程序代码&#xff0c;启动程序代码通过串口1接口实现对闪存存储器的编程。 &#xff08;2&#xff09;在程序中编程…

Python接口自动化pytest框架安装

1、创建一个requirements.txt文件夹 2、输入内容&#xff1a;如下图 pytest pytest-html pytest-xdist pytest-ordering pytest-rerunfailures pytest-base-url allure-pytest3、在terminal中输入安装命令&#xff1a;pip install -r requirements.txt 安装成功 4、在termina…

飞书很好,但赢不了,只能裁员

心碎飞书 3 月 26 日&#xff0c;字节跳动旗下产品飞书的 CEO 谢欣发布全员信&#xff0c;正式宣布进行新一轮的组织调整&#xff0c;即裁员。 内部全员信如下&#xff1a; 我有不少朋友是在字节跳动&#xff0c;甚至就在 Lark 的。 同时我也因为会经常和一些平台的运营小伙伴有…

Kimi 200万字爆火,通义加码1000万,阿里笑而不语

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 我怎么感觉Kimi是一个“网红”产品呢?在没有任何预兆情况下&#xff0c;国产AI大模型Kimi突然爆火&#xff0c;最近我在很多平台上看到了Kimi的广告&#xff0c;感觉到处都在吹这个产品。 看见上面的新闻了吧&a…

抓包工具charles修改请求和返回数据

数据篡改的主要使用场景&#xff1a; &#xff08;1&#xff09;mock场景&#xff0c;mock入参和返回值参数&#xff0c;实现mock测试 &#xff08;2&#xff09;安全测试&#xff0c;对于支付金额等比较重要的字段&#xff0c;可以修改请求参数来进行安全测试 1.首先选择要…

2024春招小红书前端面试题分享

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

DNS协议 是什么?说说DNS 完整的查询过程?

一、是什么 DNS&#xff08;Domain Names System&#xff09;&#xff0c;域名系统&#xff0c;是互联网一项服务&#xff0c;是进行域名和与之相对应的 IP 地址进行转换的服务器 简单来讲&#xff0c;DNS相当于一个翻译官&#xff0c;负责将域名翻译成ip地址 IP 地址&#…

表格中的状态类型值(tag)

一&#xff1a;数字转换为简单的中文值 ** 不用转换直接用find()方法&#xff1a;在statusList里找&#xff1b; **lastHandleCode是对应的获取到的每行数据的code值&#xff1b; vue: <el-table-column label"执行状态" align"center"><templat…

MBR分区挂了机器起不来的两种方法解决方法

当MBR分区挂了机器起不来&#xff0c;可以试试下面的两种方法 场景1&#xff1a;开机启动&#xff0c;起不来&#xff0c;发现MBR挂了&#xff0c;但分区表还在 实验方法&#xff1a; 破坏mbr引导 MBR:44864分区表数据512bytes 首先模拟MBR损坏 然后重启&#xff0c;可以看到…

【Redis】快速入门 数据类型 常用指令 在Java中操作Redis

文章目录 一、简介二、特点三、下载与安装四、使用4.1 服务器启动4.2 客户端连接命令4.3 修改Redis配置文件4.4 客户端图形化界面 五、数据类型5.1 五种常用数据类型介绍5.2 各种数据类型特点 六、常用命令6.1 字符串操作命令6.2 哈希操作命令6.3 列表操作命令6.4 集合操作命令…

怎么创建百科人物的词条?百度百科词条创建

百度百科中&#xff0c;创建一个属于自己的词条&#xff0c;不仅是个人荣誉的象征&#xff0c;更是对其生平事迹的官方记录&#xff0c;能够让更多人了解和记住一个人的成就。那么&#xff0c;如何创建一个高质量的百科人物词条呢&#xff1f;本文伯乐网络传媒将详细解答这一问…

方案公司在当前形势下,该如何发展?

什么是方案公司&#xff1f;方案公司的简单说就是帮助第三方厂家把产品做出来&#xff0c;并从中收取部分的研发费用及提成。 方案公司的存在意义&#xff0c;帮助企业节省成本&#xff0c;降低研发风险&#xff0c;不用雇佣那么多人去研发一个新产品&#xff0c;特别是对中小企…

CPU设计实战-外设接口介绍与测试

GPIO 内置寄存器&#xff0c;BASE地址由外设所在设备接口处决定&#xff0c;这样就可以确定每个寄存器的地址&#xff1b; 要使用输出先要使能&#xff0c;要用中断也先要使能&#xff1b; 测试实验-数码管驱动 数码管与GPIO的输出接口连接 编写汇编语言 1.使能输出端口 2…

LangChain入门:3.调用OpenAI的聊天机器人-入门

内容 本次入门内容是调用OpenAI的聊天机器人功能。 实现原理是使用OpenAI提供的API&#xff0c;通过向其发送请求来生成回复文本。 首先&#xff0c;导入ChatOpenAI类&#xff0c;这个类是用于实现与OpenAI聊天机器人交互的。 pip install langchain-openai2. 编写调试代码 …
最新文章