HLJUOJ1125 暴力三點一線

2021-06-26 04:50:31 字數 1598 閱讀 2172

time limit: 1 sec  

memory limit: 128 mb

submit: 19  

solved: 11 [

submit][

status][

web board]

給乙個15000 * 15000 的區域, 座標都是整數.

其中有n個點,n <= 770.問總共有多少個3點共線的組合.並按公升序(點的id)輸出所有的組合.(先按第乙個點的id公升序,然後第二個,然後第三個)

多組測試資料,讀到檔案末尾

每組資料第一行乙個數n

接下來n行,第i行兩個數x,y,代表id為i的點的座標為x,y

所有輸入均為整數

每組樣例第一行乙個數k,代表三點共線的個數

接下來k行,每行三個數,代表共線的三個點的id

16

39 16

31 6

9 828 12

39 17

21 27

46 30

20 26

36 20

29 28

47 28

20 13

21 32

36 3

19 12

33 28

4

2 5 11

4 7 9

7 8 16

10 11 16

解題思路:

根據資料,我們可以暴力列舉每三個不同的點,如果向量ab與向量ac的叉積等於0的話,說明abc三點共線。

完整**:

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;

#pragma comment(linker, "/stack:102400000,102400000")

typedef long long ll;

typedef double db;

typedef unsigned uint;

typedef unsigned long long ull;

/** constant list .. **/ //q[10001];

int s[10000001];

bool check(node a , node b , node c)

int main()

int t = 1;

int cnt = 0;

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

}printf("%d\n",cnt);

/* for(int i = 1 ; i < t ; i ++)

cout << s[i] << " " ;

cout << endl;

*/for(int i = 1 ; i < t ; i++)}}

}

vtk實現三點確定乙個平面

如何在vtk中根據三點提取乙個切面,一直知道根據三點就能表示乙個面,但是怎麼在vtk中實現,對於我這種菜鳥真是要想好久。首先說說現在的思路,知道vtkimagepalne中可以根據乙個點和乙個面法向量獲得乙個面。現在我有三個點,需要獲得乙個面法向量,那麼需要通過叉乘得到,再然後根據乙個點和得到的面法...

三點確定乙個圓的計算方法

三點確定乙個圓的計算方法 最近在寫的乙個軟體需要根據三個座標點來計算乙個圓。因此花了點時間推導了相關的公式。這個推導不算太難,放在這裡主要是做個備忘。我們設乙個圓的圓心座標為 x 0 y x0,y x 0,y 半徑為 r rr。那麼這個圓的方程可以寫為 x x 0 2 y y 0 2 r 2 x x...

據說你只要學會以下三點,旅遊就會變成一件很簡單的事

第一是面向選擇困難症的人們,每個人幾乎都遇到過,當我們準備好了來一場旅行,卻不知道去哪?據不完全統計,這是人們需求日益提高的一種表現,我們往往想用有限的時間去做無限的事情,所以面臨這諸多選擇的時候,就會變得煩躁起來。其實這種情況,我們完全可以通過科學的辦法得到解決,也就是資料分析。不同以往,生活在網...