51nod 1278 相離的圓 排序)

2022-09-13 20:51:26 字數 982 閱讀 3460

分析:定義兩個陣列l和r,分別用來儲存圓的左邊界與x軸交點和圓的右邊界與x軸交點,並公升序排列。

然後列舉r陣列中的點,通過二分法(stl)找到在l陣列中第乙個比r[i]大的元素的位置,累加(n-pos)即可。

**:

1 #include 2 #include 3

using

namespace

std;

4 typedef long

long

ll;5

ll n;

6 ll l[50005

];7 ll r[50005];8

intmain()

921 sort(l,l+n);

22 sort(r,r+n);

23 ll ans=0;24

for(ll i=0;i)

2531 cout

32return0;

33 }

view code

1278相離的圓

基準時間限制:1秒 空間限制:131072kb 分值: 10難度:2級演算法題

收藏關注

取消關注

平面上有n個圓,他們的圓心都在x軸上,給出所有圓的圓心和半徑,求有多少對圓是相離的。

例如:4個圓分別位於1, 2, 3, 4的位置,半徑分別為1, 1, 2, 1,那麼, 這5對都有交點,只有是相離的。

input

第1行:乙個數n,表示圓的數量(1 <= n <= 50000)

第2 - n + 1行:每行2個數p, r中間用空格分隔,p表示圓心的位置,r表示圓的半徑(1 <= p, r <= 10^9)

output

輸出共有多少對相離的圓。

input示例

4

1 12 1

3 24 1

output示例

1

51nod 1278 相離的圓

題目 平面上有n個圓,他們的圓心都在x軸上,給出所有圓的圓心和半徑,求有多少對圓是相離的。例如 4個圓分別位於1,2,3,4的位置,半徑分別為1,1,2,1,那麼,這5對都有交點,只有是相離的。input 第1行 乙個數n,表示圓的數量 1 n 50000 第2 n 1行 每行2個數p,r中間用空格...

51 NOD 1278 相離的圓

1278 相離的圓 基準時間限制 1 秒 空間限制 131072 kb 分值 10 難度 2級演算法題 平面上有n個圓,他們的圓心都在x軸上,給出所有圓的圓心和半徑,求有多少對圓是相離的。例如 4個圓分別位於1,2,3,4的位置,半徑分別為1,1,2,1,那麼,這5對都有交點,只有是相離的。inpu...

51Nod 1278 相離的圓

平面上有n個圓,他們的圓心都在x軸上,給出所有圓的圓心和半徑,求有多少對圓是相離的。例如 4個圓分別位於1,2,3,4的位置,半徑分別為1,1,2,1,那麼,這5對都有交點,只有是相離的。input 第1行 乙個數n,表示圓的數量 1 n 50000 第2 n 1行 每行2個數p,r中間用空格分隔,...