(斜率,点和线段)zzuli1196数星星(二)

题目描述
一天,小明坐在院子里数星星,Gardon就出了个难题给他,让他数数天上的星星最多有多少个是在同一条直线上的。天上的星星太多了,小明马上就看花了眼,你能写个程序来帮他计算么?

输入
首先输入一个整数N(N<=300),接下来的N对数每对表示一个星星的位置(星星的坐标在-10000到10000之间,精确到小数点后1位)。没有两个星星会在同一个位置。

输出
一个整数,表示一条直线上最多星星的数目。

样例输入
5
0 0
1 0
1 1
0 1
0.5 0.5
样例输出
3

分析与解

我以维特根斯坦的论述方式来分析:

对于斜率,点,以及线段来说:
1.两点确定一条直线,直线具有斜率
2.斜率可以取0到无穷
3.斜率为无穷时说明直线与y轴平行或重合
4.斜率为无穷时说明斜率公式中分母为零
5.斜率为无穷时,其值具有相对性:2−00−0和−1−00−0\frac{2-0}{0-0}和\frac{-1-0}{0-0}00200010
一个是正无穷,一个是负无穷,但是其都是在一条直线上的(y轴)。
6.共线问题建立在三个点的基础之上
7.我们不能通过一般的斜率公式是否相等来断定三个点是否共线
8.可以通过乘式判断3点共线
(y3−y1)(x2−x1)−(y2−y1)(x3−x1)=0(y3−y1)(x2−x1)−(y2−y1)(x3−x1)=0(y3y1)(x2x1)(y2y1)(x3x1)=0
9.n个点,每一个点都能和剩下n-1个点组成线段
10.当每个点都不共线时,n个点组成的不同直线的个数最多
11.A点和B点组成线段也意味着B点和A点组成线段
12.n个点组成最多不同直线个数为n∗(n−1)2\frac {n*(n-1)}{2}2n(n1)

解题思路:
1.确定两个点,找第三个点,看看他们是否共线,如果共线,当前标记数组加一。
2.两个确定点要取到所有不重复情况。
3.两个点,那么一定共线,所以我们只需要找有多少其余的点在那条线上。然后再加上2就是所有在这条线上的点。

代码

#include<iostream>
#include<algorithm>
using namespace std;
struct star{double x;double y;
};
int main(){int n;star s[333];cin>>n;for(int i=0;i<n;++i){cin>>s[i].x>>s[i].y;}int m=0;int b[100860];for(int i=0;i<n;++i){for(int j=i+1;j<n;++j){for(int k=j+1;k<n;++k){if((s[k].y-s[i].y)*(s[k].x-s[j].x)-(s[k].y-s[j].y)*(s[k].x-s[i].x)==0){b[m]+=1;}}m++;}}sort(b,b+m);if(n==1) cout<<1;else if(n<=0) cout<<0;else cout<<b[m-1]+2;
} 

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

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

相关文章

鸿蒙ide如何运行,深入浅析华为鸿蒙IDE安装与Hello World

一、系统安装1. 到官网下载HUAWEI DevEco Studio2. 安装二、创建项目创建项目目前还没有手机选项&#xff0c;所以我先选择一个电视&#xff1a;IDE的环境看起来和idea差不多&#xff0c;应该比较容易上手。从“关于”里也可以看到&#xff0c;确实是基于IDEA开源版本开发的。我…

springboot 上传文件解析入库_SpringBoot + easyexcel + WebUploader 实现文件上传并解析

1. WebUploader的使用&#xff0c;引入css和js&#xff0c;css其实没什么用&#xff1a;2. 定义上传框&#xff1a;选择文件开始上传3.相关jquery&#xff1a;// 文件上传jQuery(function() {var $ jQuery,$list $(#thelist),$btn $(#ctlBtn),state pending,uploader;uploa…

中快捷搜索_同事用1分钟,我用半小时,原来是因为这8个Word快捷键,秒杀一切办公技巧...

同事用1分钟&#xff0c;我用半小时&#xff0c;这8个Word快捷键&#xff0c;秒杀一切办公技巧​mp.weixin.qq.com文&#xff5c;王羽卒今天给小伙伴们分享几个实用又有效的快捷键&#xff0c;帮助快速完成工作&#xff0c;同事用了半小时&#xff0c;你1分钟就能解决哟&#x…

动态规划理论基础

(采用维特根斯坦的表述方式) 1.达成目的过程可以由不同阶段组成 2.阶段由达成目的的条件确定 (注&#xff1a;规定每一次走一步&#xff0c;第一步就是一个阶段) 3.每个阶段由不同的状态组成 4.状态是阶段中可能面临的所有情况 (注&#xff1a;第一步落脚点可能有多个&am…

荣耀x10max能不能升级为鸿蒙,荣耀终于放出大招!4部荣耀旗舰可升级鸿蒙,网友:终于等到了...

4月24~26日&#xff0c;华为将召开开发者大会&#xff0c;届时手机使用的鸿蒙系统将正式上线&#xff0c;华为和部分荣耀手机将会首先支持。其实&#xff0c;早在2月22日的华为Mate X2的发布会上&#xff0c;余承东就说过4月发布鸿蒙OS。华为并不想推出鸿蒙系统&#xff0c;如果…

android 7.0新增控件,自定义Android控件,封装Arcgis for Android测距测面积工具控件

控件的功能包括&#xff0c;测距、测面积、撤销、恢复、清除、完成六个功能。测距&#xff1a;在地图上绘制线段进行长度测量测面积&#xff1a;在地图上绘制一个面&#xff0c;进行面积测量撤销&#xff1a;撤销到上一步绘制&#xff0c;只能撤销未完成的测量恢复&#xff1a;…

cpython需要另外安装吗_在windows环境下安装和使用Python(CPython)

在windows环境下安装和使用Python(CPython)一、下载1.选择Python版本打开Windows版Python官网下载链接&#xff0c;选择Latest Python 3 Release - Python 3.8.3 。(推荐选择Python3.x&#xff0c;也可以选择其他版本)2.选择需要的Python类型在File中选择Windows x86-64 execut…

python模块:命名空间与重载模块

文章目录模块命名空间&#xff1a;重载模块&#xff1a;#module2.py print(starting to load...) import sys name42 def func():pass class klass:pass print(done loading.) >>> import module2 starting to load... done loading. >>> module2.sys <mo…

哪个html在大部分浏览器下是不隐藏的,前端浏览器兼容性问题总结

市场上浏览器种类很多&#xff0c;不同浏览器的内核也不尽相同&#xff0c;所以各个浏览器对网页的解析存在一定的差异。浏览器内核主要分为两种&#xff0c;一是渲染引擎&#xff0c;另一个是js引擎&#xff0c;内核更加倾向于说渲染引擎。常见的浏览器内核可以分四种&#xf…

多媒体分析与理解_如何设计一个出色的数字多媒体展厅?

展厅设计方案是了解每个多媒体设备的应用方法&#xff0c;那么如何让设备跟展厅结合一起&#xff0c;展示出我们想要的科技效果&#xff0c;核心就是用户体验度。今天华南数字科技的小编就为您介绍下数字多媒体展厅对用户体验方面的几个重点要素。1、细节展示不论多前卫的多媒体…

python模块:运行机制与编写方法

文章目录python模块的导入机制&#xff1a;python模块编写方法&#xff1a;#mod1: def printer(x):print(x) #mod2: print(hello) n1 #mod3: x1 y[2,3] >>> import mod1 >>> mod1.printer(hello) hello >>> from mod1 import printer >>> …

html标签a+hover事件,触发a标签hover事件,如何在元素底部显示蓝色底块_html/css_WEB-ITnose...

回复讨论(解决方案)你可以用li:hover border-bottom:3px solid blue;background-position:bottom; //是针对背景图片的位置,不是背景颜色height: 1px;//这里的高度为什么是1px?有什么目的&#xff1f;width:45px;可以采用1楼的做法&#xff0c;设置底部边框还有给你个动画效果…

微信小程序 界面从右边滑出_微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)...

本文实例讲述了微信小程序MUI侧滑导航菜单。分享给大家供大家参考&#xff0c;具体如下&#xff1a;实现的目标—-YDUI的Popup组件点击列表图标—-左侧的菜单栏显示—-点击关闭按钮或者右侧的遮罩层—-左侧菜单栏关闭实现方案1&#xff1a;左侧菜单和右侧展示页面分为上下两层w…

python函数:函数参数,常用函数工具

文章目录python函数之参数python的lambda表达式&#xff1a;函数工具&#xff1a;map&#xff0c;filter&#xff0c;reduce>>> def f(a):a99>>> b88 >>> f(b) >>> print(b) 88 >>> def ch(a,b):a2b[0]eoe>>> x1 >&g…

gradient设置上下渐变_图解CSS: CSS渐变

CSS的渐变主要分布在 conic-gradient()和repeating-conic-gradient()两个属性。在CSS中&#xff0c;CSS的渐变相当于图像&#xff0c;我们可以使用线性渐变(linear-gradient()和repeating-linear-gradient())、径向渐变(radial-gradient()和repeating-radial-gradient())和锥形…

2021泗阳致远中学高考成绩查询,2021高考成绩什么时候发布?可通过哪些途径查询?...

3、安徽省高考成绩预计将于6月23日公布各批次录取分数线和高考成绩&#xff0c;考生可通过安徽省教育招生考试院自行查分&#xff1b;4、湖南高考成绩将于6月25日左右公布&#xff0c;本科不再分一二三批&#xff0c;考生可通过湖南教育政务网、湖南省普通高校招生考试考生综合…

python函数之作用域

python函数之作用域&#xff1a; >>> def times(x,y):return x*y>>> times(2,4) 8 >>> times(3.1,4) 12.4 >>> times(eop,4) eopeopeopeop >>> def inset(s1,s2):res[]for x in s1:if x in s2:res.append(x)return res>>&…

mysql数据库的字符集_mysql数据库中字符集乱码问题原因及解决

前言有的时候我们在查看数据库数据时&#xff0c;会看到乱码。实际上&#xff0c;无论何种数据库只要出现乱码问题&#xff0c;这大多是由于数据库字符集设定的问题。下面我们就介绍一下&#xff0c;数据库的字符集的设定及乱码问题的解决。mysql数据库的字符集直白的说&#x…

加强计算机网络应用,如何加强计算机网络管理技术创新应用

车煜铭摘要&#xff1a;在社会的发展当中&#xff0c;计算机网络被普遍运用&#xff0c;因此&#xff0c;令人们对计算机网络的依赖性越来越大。长久以来&#xff0c;大部分计算机用户渴望获得一个稳定的网络氛围。为了符合这一需求&#xff0c;计算机网络管理系统随之诞生。其…

python基本语句

文章目录1.赋值语句序列赋值语句&#xff1a;多目标赋值语句&#xff1a;增强赋值语句&#xff1a;表达式语句2.条件语句和循环语句if语句&#xff1a;while循环&#xff1a;for循环&#xff1a;range计数器zip函数enumerate函数1.赋值语句 >>> a1 >>> b2 &…