蓝桥杯练习系统(算法训练)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.mzph.cn/news/773272.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32 使用gcc编译介绍

文章目录 前言1. keil5下的默认编译工具链用的是哪个2. Arm编译工具链和GCC编译工具链有什么区别吗&#xff1f;3. Gcc交叉编译工具链的命名规范4. 怎么下载gcc-arm编译工具链参考资料 前言 我们在STM32上进行开发时&#xff0c;一般都是基于Keil5进行编译下载&#xff0c;Kei…

区块链安全之DDoS防护的重要性及其实施策略

随着区块链技术的不断发展和广泛应用&#xff0c;其安全问题也日益凸显。其中&#xff0c;分布式拒绝服务(DDoS)攻击是对区块链网络稳定性和效率构成潜在威胁的重要因素之一。本文旨在深入探讨区块链为何需要采取DDoS高防措施&#xff0c;并提出相应的防护策略。 一、区块链面…

博客系统——3、数据库表设计 - 博客标签表

任务描述 本关任务&#xff1a;在博客数据库中建立博客标签表。 相关知识 多对多关系的建立 每一个博客都可以设置很多个标签&#xff0c;比如一篇讲JavaWeb知识的博客&#xff0c;就可能会涉及到多个标签如&#xff1a;前端、后端、Java、SpringMVC等标签&#xff0c;而一…

碳课堂|什么是碳资产?企业如何进行碳资产管理?

碳资产是绿色资产的重要类别&#xff0c;在全球气候变化日益严峻的背景下备受关注。在“双碳”目标下&#xff0c;碳资产管理是企业层面实现碳减排目标和低碳转型的关键。 一、什么是碳资产&#xff1f; 碳资产是以碳减排为基础的资产&#xff0c;是企业为了积极应对气候变化&…

Kubernetes示例yaml:1. service-deployment.yaml

service-deployment.yaml 示例 apiVersion: apps/v1 kind: Deployment metadata:name: example-plusnamespace: aaaalabels:app: example-prdapp_unit: AAAA-EXAMPLE spec:replicas: 2selector:matchLabels:app: example-prdtemplate:metadata:labels:app: example-prdapp_uni…

常见位运算的总结

目录 一、基础位运算 二、给一个数n&#xff0c;确定它的二进制中的第x位是0还是1 三、将一个数n的二进制表示的第x位修改成1 四、将一个数n的二进制位表示的第x位修改成0 五、位图思想 六、提取一个数(n)二进制表示中最右侧的1(lowbit) 七、干掉一个数n的最右侧的1 八、…

1.5T数据惨遭Lockbit3.0窃取,亚信安全发布《勒索家族和勒索事件监控报告》

本周态势快速感知 本周全球共监测到勒索事件93起&#xff0c;近三周攻击数量呈现持平状态。 本周Lockbit3.0是影响最严重的勒索家族&#xff0c;Blacksuit和Ransomhub恶意家族紧随其后&#xff0c;从整体上看Lockbit3.0依旧是影响最严重的勒索家族&#xff0c;需要注意防范。 …

神经网络代码实现(用手写数字识别数据集实验)

目录 一、前言 二、神经网络架构 三、算法实现 1、导入包 2、实现类 3、训练函数 4、权重参数矩阵初始化 5、参数矩阵变换向量 6、向量变换权重参数矩阵 7、进行梯度下降 7.1、损失函数 7.1.1、前向传播 7.2、反向传播 8、预测函数 四、完整代码 五、手写数字识别 一、前言 …

LVS负载均衡(load balance)

一 LVS LVS&#xff1a;Linux Virtaul Server&#xff0c;该软件的功能是实现 LB&#xff08;load balance&#xff09; 二LVS 的三种工作模式 1.NAT 模式&#xff08;NAT&#xff09; LVS 服务器同时充当一台 NAT 网关&#xff0c;拥有公有 IP &#xff0c;同时负责将针对此…

数据结构——队列(C语言版)

前言&#xff1a; 在学习完数据结构顺序表和链表之后&#xff0c;其实我们就可以做很多事情了&#xff0c;后面的栈和队列&#xff0c;其实就是对前面的顺序表和链表的灵活运用&#xff0c;今天我们就来学习一下队列的原理和应用。 准备工作&#xff1a;本人习惯将文件放在test…

美国大选献金项目数据分析

需求 加载数据查看数据的基本信息指定数据截取&#xff0c;将如下字段的数据进行提取&#xff0c;其他数据舍弃 cand_nm &#xff1a;候选人姓名contbr_nm &#xff1a; 捐赠人姓名contbr_st &#xff1a;捐赠人所在州contbr_employer &#xff1a; 捐赠人所在公司contbr_occu…

搭建Flutter开发环境、从零基础到精通(文末送书【北大出版社】)

目录 搭建开发环境 1. 下载Flutter SDK 2. 设置镜像地址及环境变量 3. 安装与设置Android Studio 4. 安装Visual Studio Code与Flutter开发插件 5. IDE的使用和配置 6. 安装Xcode 7. 检查Flutter开发环境 好书推荐 内容简介 作者简介 搭建开发环境 Flutter可以跨平…

selenium完结篇,补充知识点

1、前两期没看的建议先去看前两期博客 2、选择框的勾选 getAttribute("type")是获取属性的意思 List<WebElement> webElementswebDriver.findElements(By.cssSelector("input"));for(int i0;i<webElements.size();i){if(webElements.get(i).getA…

使用npm i进行admin依赖安装的时候出现问题

提示&#xff1a; npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/string-width failed, reason: certificate has expired 切换淘宝源到http或者更换其他国内镜像 npm config set registry http:/…

Salesforce宣布将停用Workflow Rules和Process Builder!

在近期的公告中&#xff0c;Salesforce透露在2025年12月31日之后将不再支持Workflow Rules和Process Builder。 Salesforce敦促用户在截止日期前将其自动化流程迁移到Flow Builder&#xff0c;以确保不间断的支持和漏洞修复。此举正值Salesforce将重点转向更现代、可扩展、低代…

rust中常用cfg属性和cfg!宏的使用说明,实现不同系统的条件编译

cfg有两种使用方式&#xff0c;一种是属性&#xff1a; #[cfg()]&#xff0c;一种是宏&#xff1a;cfg! &#xff0c;这两个都是非常常用的功能。 #[cfg()]是 Rust 中的一个属性 用于根据配置条件来选择性地包含或排除代码。cfg 是 "configuration" 的缩写&#xf…

Web举例:防火墙二层,上下行连接交换机的主备备份组网

Web举例&#xff1a;防火墙二层&#xff0c;上下行连接交换机的主备备份组网 介绍了业务接口工作在二层&#xff0c;上下行连接交换机的主备备份组网的Web举例。 组网需求 如图1所示&#xff0c;两台FW的业务接口都工作在二层&#xff0c;上下行分别连接交换机。FW的上下行业…

中小型集群部署,Docker Swarm(集群)使用及部署应用介绍

1、Docker Swarm简介 说到集群&#xff0c;第一个想到的就是k8s&#xff0c;但docker官方也提供了集群和编排解决方案&#xff0c;它允许你将多个 Docker 主机连接在一起&#xff0c;形成一个“群集”&#xff08;Swarm&#xff09;&#xff0c;并可以在这个 Swarm 上运行和管…

Go语言学习Day4:函数(上)

名人说&#xff1a;莫愁千里路&#xff0c;自有到来风。 ——钱珝 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 1、函数的概念与定义①函数的概念②函数的具体定义③多返回值 2、函数参数与作用域①可变参数②形…

【零基础C语言】文件操作

目录 理解文件操作 什么是文件 程序文件 数据文件 文件名字 二进制文件和文本文件 文件的打开和关闭 文件的打开和关闭操作 实验1&#xff0c;打开一个文件并且输入26个字母 打开读取文件text.txt ,并且将它拷贝进text_cpy.txt 使用 fputs 和 fgets 函数 使用 fprintf函…