TAG
- 算法 − 【计算几何 − 叉积】 算法 - 【计算几何 - 叉积】 算法−【计算几何−叉积】时间复杂度
- O ( N 3 ) O(N^3) O(N3)
//
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define LD double
#define CP const Point
const int N = 333;
struct Point {
int x, y;
Point operator - (CP& in) const {
return {x - in.x, y - in.y};
}
} in[N];
int det(CP& a, CP& b) {
return a.x * b.y - a.y * b.x;
}
void solve() {
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> in[i].x >> in[i].y;
}
int ans = 0;
for (int i = 1; i <= n; i++) {
for (int j = i + 1; j <= n; j++) {
for (int k = j + 1; k <= n; k++) {
ans += (det(in[i] - in[j], in[i] - in[k]) != 0);
}
}
}
cout << ans << endl;
}
signed main() {
int t = 1;
// scanf("%d", &t);
while (t--) solve();
return 0;
}
实现细节
- `
参考示意图
-
`
参考链接
作者 | 乐意奥AI