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

2021-07-23 15:40:17 字數 1048 閱讀 4333

1451 合法三角形

codeforces

基準時間限制:1 秒 空間限制:131072 kb 分值: 80 

難度:5級演算法題

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

input

單組測試資料。

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

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

output

輸出合法的三角形數目。
input示例

4

0 01 1

2 02 2

output示例

3
思路:就是求三點不共線的個數 = 組合總數 -  三點共線個數

-.-三點共線可以兩點到另一點的斜率來判斷-.-

**:

#include#include#include#include#include#include#includeusing namespace std;

#define ll long long

struct nodedian[2222];

bool cmp(node xx,node yy)

}if (k>1)

ans+=k*(k-1)/2;

return ans;

}void init()

}ll hang()//x相同

}return ans;

}ll lie()//y相同

}return ans;

}int main()

{ scanf("%d",&n);

for (int i=1;i<=n;i++)

scanf("%hd%hd",&dian[i].x,&dian[i].y);

sort(dian+1,dian+1+n,cmp);

ll ans=0;

for (int i=1;i

51nod 1451 合法三角形

有n個不同的點,問有多少組三元組能構成面積非0的三角形。單組測試資料。第一行乙個整數n 1 n 2000 表示點的數目。接下來n行,每行包含兩個整數 xi,yi 100 xi,yi 100 表示第i個點的座標。輸入保證點是兩兩不同的。輸出合法的三角形數目。4 0 0 1 1 2 0 2 2n 2連邊...

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

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

求大三角形中三角形個數

一道筆試程式設計題要求求乙個大三角形中所有小三角形的個數,大約是下面這種情況 首先想到是的將問題由求邊長為n的三角形個數 求邊長為n 1的三角形個數 求邊長為1的三角形個數 1,回溯求得所有三角形個數。但是再仔細一看因為有重疊三角形和倒置的三角形,所以這個方法不可行。接著找到三角形個數由三部分組成 ...