(斜率,点和线段)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}0−02−0和0−0−1−0
一个是正无穷,一个是负无穷,但是其都是在一条直线上的(y轴)。
6.共线问题建立在三个点的基础之上
7.我们不能通过一般的斜率公式是否相等来断定三个点是否共线
8.可以通过乘式判断3点共线
(y3−y1)(x2−x1)−(y2−y1)(x3−x1)=0(y3−y1)(x2−x1)−(y2−y1)(x3−x1)=0(y3−y1)(x2−x1)−(y2−y1)(x3−x1)=0
9.n个点,每一个点都能和剩下n-1个点组成线段
10.当每个点都不共线时,n个点组成的不同直线的个数最多
11.A点和B点组成线段也意味着B点和A点组成线段
12.n个点组成最多不同直线个数为n∗(n−1)2\frac {n*(n-1)}{2}2n∗(n−1)
解题思路:
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;
}
(斜率,点和线段)zzuli1196数星星(二)相关推荐
- 1196: 数星星(二)(结构体专题)_福利:最新导数6大专题!高分段提分有困扰?听北大状元漫谈提分...
这是一篇适合数学120分以上的高中生深度研读的随感.文末有福利! 振宇老师从教的十几年中,遇到高分段学生最大的困扰便是:130分以上每提一分便需要付出极大的努力.究其原因,便是思维不够严谨全面,无法拿 ...
- zzulioj:1196: 数星星(二)(结构体专题)
1196: 数星星(二)(结构体专题) 时间限制: 1 Sec 内存限制: 128 MB 提交: 2993 解决: 964 [状态] [讨论版] [提交] [命题人:外部导入] 题目描述 一天,小明坐 ...
- 【题集】一维前缀和-二维前缀和-数星星问题-反复运行时如何降低时间复杂度
目录 1前缀和 1.1一维前缀和 1.2二维前缀和 2.题目 2.1输入描述: 2.2输出描述: 2.3输入 2.4输出 3.题目理解 3.1思路 4.程序 4.1运行结果 1前缀和 1.1一维前缀和 ...
- 题解西电OJ (Problem 1008 - 数星星)
题目内容: Description "不要问我太阳有多高 我会告诉你我有多真 不要问我星星有几颗 我会告诉你很多很多" 一天Qinz和wudired在天上数星星,由于星星可以 ...
- [NowCoder] 牛牛数星星
一闪一闪亮晶晶,满天都是小星星,牛牛晚上闲来无聊,便躺在床上数星星. 牛牛把星星图看成一个平面,左上角为原点(坐标为(1, 1)).现在有n颗星星,他给每颗星星都标上坐标(xi,yi),表示这颗星星在 ...
- 用ClickHouse在GitHub上数星星
在最大的基友交友网站GitHub上,来自世界各地的开源开发者们进行着数百万个项目.这里每天都有大量的代码文档.修复和提交BUG之类的事件信息产生. 而GitHub Archive项目,正是搜集了这些G ...
- 按分数段统计学生人数python_用Excel统计各分数段学生数
用 Excel 统计各分数段学生数 方法一:用 COUNTIF 函数统计 这是最常用.最容易理解的一种方法,我们用它来统计"语文"学科各分数段学生数. 如果某些学科 (如体育) , ...
- 空间点过程与随机测度(一):从数星星说起
(2010-04-13 08:15:00) 转载▼ 标签: 测度 分类: 数学 空间点过程与随机测度(一):从数星星说起 Blog的更新刚刚恢复,就得到大家的鼓励,真是让我感动,谢谢大家了. 数星星的 ...
- 2021年12月电子学会图形化三级编程题解析含答案:数星星
[此题目来自2021年12月份电子学会] [青少年软件编程(图形化)等级考试试卷(三级)] 三.编程题(共3题,共30分) 36:数星星 Goblin有个很厉害的魔法:他一挥手就可以点亮夜空中五彩斑斓 ...
最新文章
- Thinking in Java,Fourth Edition(Java 编程思想,第四版)学习笔记(二)之Introduction to Objects...
- LongAdder解析 1
- 上海php黑名单,php判断ip黑名单程序代码实例
- 五一重装WinXP操作系统所遇问题的解决
- acm常见算法及例题
- asp listview 单元格文字颜色_如何替换CAD表格中特定区域单元格中的文字?
- html5 拖拽滚动条,js 简易版滚动条实例(适用于移动端H5开发)
- 如何选择一个合适的大数据可视化工具
- uni-app配置代理
- javascript 实现自动定时刷新网页脚本
- 常见不透明度16进制转换
- typo:in word ‘ ‘ 问题解决方法
- file_get_contents
- Qt进阶--Item Views详解(基础,原创,超级详细)
- 屏录录制工具,Gif录制工具
- 恐龙灭绝的真正原因是什么?撞击事件和火山喷发
- AI时代——人工智能技术图谱,它来啦(机器学习+深度学习学习路线)
- tableFooterView中的按钮点击没反应
- vue官网学习笔记(九)组件基础
- 淘宝网携手富友软件助力时尚行业电子商务营销
热门文章
- python爬虫 正则表达式 re.finditer 元字符 贪婪匹配 惰性匹配
- 公开说说别人看不到_当听到别人在说自己坏话时,心里是什么感受?
- extern “C“解决链接问题
- ExecutorService源码解读
- mysql数据自定义随机_Mysql 自定义随机字符串
- 论述类文本知识框架_高考语文“论述类文本阅读”:三步走,拿满分
- 动环监控系统接线图_机房动环监控系统报价
- 前端为什么说github很重要_私域流量|为什么说私域流量很重要?
- 跨域会报40几_关于跨域,以及跨域的几种方式
- qt android程序联网死机,Qt for Android(九) ——APP 崩溃卡死拉起保活实战