《直线》真题练习

时间:2022-2-27    作者:老大夫    分类: 蓝桥C++


转载自:https://www.lanqiao.cn/courses/5485
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

在平面直角坐标系中,两点可以确定一条直线。如果有多点在一条直线上, 那么这些点中任意两点确定的直线是同一条。

给定平面上 2 × 3 个整点{(x, y)|0 ≤ x < 2, 0 ≤ y < 3, x ∈ Z, y ∈ Z},即横坐标 是 0 到 1 (包含 0 和 1) 之间的整数、纵坐标是 0 到 2 (包含 0 和 2) 之间的整数 的点。这些点一共确定了 11 条不同的直线。

给定平面上 20 × 21 个整点 {(x, y)|0 ≤ x < 20, 0 ≤ y < 21, x ∈ Z, y ∈ Z},即横 坐标是 0 到 19 (包含 0 和 19) 之间的整数、纵坐标是 0 到 20 (包含 0 和 20) 之 间的整数的点。

请问这些点一共确定了多少条不同的直线。

解题思路
在平面直角坐标系中,俩点可以确定一条直线,但俩点有四个坐标值,我们不太好维护四个坐标值是否重复。

我们知道直线的表示方式中,除了俩点式,还有点斜式,点斜式的话, 一个点俩个坐标值和一个斜率值,三个值来确定唯一性,虽然不太好写但是还是勉强能跑出来。

更进一步,如果那个点是在 x 轴或者 y 轴上,那么一个坐标就恒定为 0, 只要维护另一个坐标值(其实就是截距)和斜率就好了,简单 map 维护一下,要注意考虑枚举的斜率不存在的情况。

最终答案:40257。

版权所有:伸手党盘
文章标题:《直线》真题练习
文章链接:https://ssdpan.cn/?post=5
本站文章来源于网络搜集和原创,仅供学习使用,未经授权请勿用于任何商业用途,如有侵权及时联系删除

推荐阅读:


扫描二维码,在手机上阅读