51nod 1451 合法三角形

2021-08-09 18:20:30 字數 944 閱讀 6192

有n個不同的點,問有多少組三元組能構成面積非0的三角形。

單組測試資料。

第一行乙個整數n (1 ≤ n ≤ 2000),表示點的數目。

接下來n行,每行包含兩個整數 xi, yi ( -100 ≤ xi, yi ≤ 100),表示第i個點的座標。輸入保證點是兩兩不同的。

輸出合法的三角形數目。

4 0 0

1 1

2 0

2 2n^2連邊計算斜率然後減去斜率相同的就好

#include 

#include

#include

using

namespace

std;

typedef

long

long ll;

const

int maxn = 2222;

const

int inf = 0x3f3f3f3f;

const

double esp = 1e-6;

ll n;

ll rep = 0;

ll x[maxn], y[maxn];

double slope[maxn * maxn];

void solve()

else

slope[k++] = res;

}sort(slope, slope + k);

int last = 0, now = 1, tmp;

for (; now < k; now++)

}tmp = now - last;

rep += tmp * (tmp - 1) / 2;

}}int main()

solve();

printf("%lld\n", n * (n - 1) * (n - 2) / 6 - rep);

}

51nod 1451 合法三角形 列舉斜率

1451 合法三角形 codeforces 基準時間限制 1 秒 空間限制 131072 kb 分值 80 難度 5級演算法題 有n個不同的點,問有多少組三元組能構成面積非0的三角形。input 單組測試資料。第一行乙個整數n 1 n 2000 表示點的數目。接下來n行,每行包含兩個整數 xi,yi...

51nold 1451 合法三角形 數學幾何

1451 合法三角形 codeforces 基準時間限制 1 秒 空間限制 131072 kb 分值 80 難度 5級演算法題 有n個不同的點,問有多少組三元組能構成面積非0的三角形。input 單組測試資料。第一行乙個整數n 1 n 2000 表示點的數目。接下來n行,每行包含兩個整數 xi,yi...

51nod 圓與三角形

當時想的好麻煩啊.後來突然靈光一閃有了思路。思路如下 1逐個判斷相鄰兩點組成的線是否與圓有交點 2 對於任意的一條線,如果兩端點只有乙個在圓內則有交點 3 對於任意的一條線,如果兩個端點都在圓內則沒有交點 4 對於任意的一條線,如果兩個端點都在圓外,則計算兩端點與圓心構成的角是否有鈍角,如果有則沒有...