斜率小於0的連線數量

2021-08-15 06:32:29 字數 1260 閱讀 5384

二維平面上n個點之間共有c(n,2)條連線。求這c(n,2)條線中斜率小於0的線的數量。

二維平面上的乙個點,根據對應的x y座標可以表示為(x,y)。例如:(2,3) (3,4) (1,5) (4,6),其中(1,5)同(2,3)(3,4)的連線斜率 < 0,因此斜率小於0的連線數量為2。

input

第1行:1個數n,n為點的數量(0 <= n <= 50000)

第2 - n + 1行:n個點的座標,座標為整數。(0 <= x[i], y[i] <= 10^9)

output

輸出斜率小於0的連線的數量。(2,3) (2,4)以及(2,3) (3,3)這2種情況不統計在內。
input示例

4

2 33 4

1 54 6

output示例

2
#include #include using namespace std;

const int maxn = 5e4 + 5;

typedef long long int ll;

struct node

;node nodes[maxn];

node temp[maxn];

ll result = 0;

bool cmp(const node &a, const node &b)

return a.x < b.x;

}void mergesort(int left, int right)

int mid = left + (right - left) / 2;

mergesort(left, mid);

mergesort(mid + 1, right);

int i = left;

int j = mid + 1;

int pos = 0;

while (i <= mid && j <= right)

else

pos++;

} while (i <= mid)

while (j <= right)

pos = 0;

for (i = left; i <= right; i++) }

int main()

sort(nodes, nodes + n, cmp);

mergesort(0, n - 1);

cout << result << endl;

return 0;

}

1107 斜率小於0的連線數量

二維平面上n個點之間共有c n,2 條連線。求這c n,2 條線中斜率小於0的線的數量。二維平面上的乙個點,根據對應的x y座標可以表示為 x,y 例如 2,3 3,4 1,5 4,6 其中 1,5 同 2,3 3,4 的連線斜率 0,因此斜率小於0的連線數量為2。input 第1行 1個數n,n為...

1107 斜率小於0的連線數量

二維平面上n個點之間共有c n,2 條連線。求這c n,2 條線中斜率小於0的線的數量。二維平面上的乙個點,根據對應的x y座標可以表示為 x,y 例如 2,3 3,4 1,5 4,6 其中 1,5 同 2,3 3,4 的連線斜率 0,因此斜率小於0的連線數量為2。input 第1行 1個數n,n為...

斜率小於0的連線數量 歸併排序

二維平面上n個點之間共有c n,2 條連線。求這c n,2 條線中斜率小於0的線的數量。二維平面上的乙個點,根據對應的x y座標可以表示為 x,y 例如 2,3 3,4 1,5 4,6 其中 1,5 同 2,3 3,4 的連線斜率 0,因此斜率小於0的連線數量為2。input 第1行 1個數n,n為...