注意要考虑到是一条竖线的情况
2024-03-21 15:56:48
发布于:浙江
116阅读
0回复
0点赞
两个点确定一条直线,可以枚举这条直线是由哪两个点确定,然后在枚举其他点,判断其他点是否在这条直线上。注意要考虑到是一条竖线的情况
#include <iostream>
using namespace std;
struct node {
int x, y;
} a[509];
int main() {
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i].x >> a[i].y;
}
int ans = 1;
for (int i = 1; i <= n; i++) {
for (int j = i + 1; j <= n; j++) {
int tm = 2;
for (int k = 1; k <= n; k++) {
if (k == i || k == j) {
continue;
}
if (abs((a[i].y - a[j].y) * (a[i].x - a[k].x)) == abs((a[i].y - a[k].y) * (a[i].x - a[j].x))) {
tm++;
}
}
ans = max(ans, tm);
}
}
cout << ans;
return 0;
}
这里空空如也
有帮助,赞一个