#2351. 点的集合与直线的关系
点的集合与直线的关系
📏 点的集合与直线的关系
📘 题目描述
给定二维平面上的 N 个点,判断这些点是否共线,即是否全部在同一条直线上。
📥 输入格式
- 第一行一个整数
N(2 ≤ N ≤ 1000),表示点的个数; - 接下来的
N行,每行两个整数x和y,表示一个点的坐标。坐标范围:-10⁴ ≤ x, y ≤ 10⁴。
📤 输出格式
- 输出一行:如果所有点在一条直线上,输出
Yes;否则输出No。
📌 输入样例 1
4
1 1
2 2
3 3
4 4
📤 输出样例 1
Yes
📌 输入样例 2
3
1 1
2 2
3 4
📤 输出样例 2
No
🧠 解题思路
我们利用向量叉积来判断是否共线:
给定三点 A(x1, y1), B(x2, y2), C(x3, y3),若它们共线,则有:
等价于向量 AB 和 AC 的叉积为 0。
所以我们只需用前两个点确定方向,然后判断其余所有点是否满足上述关系。