51nod1091線段重疊 貪心

2021-08-22 03:28:04 字數 786 閱讀 2945

x軸上有n條線段,每條線段包括1個起點和終點。線段的重疊是這樣來算的,10201020和12251225的重疊部分為12201220。

給出n條線段的起點和終點,從中選出2條線段,這兩條線段的重疊部分是最長的。輸出這個最長的距離。如果沒有重疊,輸出0。

input

第1行:線段的數量n(2 <= n <= 50000)。 

第2 - n + 1行:每行2個數,線段的起點和終點。(0 <= s , e <= 10^9)

output

輸出最長重複區間的長度。

sample input

5

1 52 4

2 83 7

7 9

sample output

4
思路:

算是一道比較有代表的貪心簡單題吧,我們把這些線段按x公升序排序,之後把每條線段都遍歷一遍,對於我們現在遍歷中的一條線段p,我們在之前就記錄了p1卡前面出現的y最大的那條線段p2(p前面的與p1重疊部分最大的肯定y最大),求出p1,p2的重疊部分,以此類推

**:#include

using namespace std;

const int maxn = (int)5e4 + 10;

struct node

line[maxn];

bool cmp(node a,node b)

int solve(node a,node b)

int main()

printf("%d\n",ans);

return 0;

}

51nod 1091 線段的重疊 貪心

題目 x軸上有n條線段,每條線段包括1個起點和終點。線段的重疊是這樣來算的,10 20 和 12 25 的重疊部分為 12 20 給出n條線段的起點和終點,從中選出2條線段,這兩條線段的重疊部分是最長的。輸出這個最長的距離。如果沒有重疊,輸出0。input 第1行 線段的數量n 2 n 50000 ...

51Nod 1091 線段的重疊 (貪心)

x軸上有n條線段,每條線段包括1個起點和終點。線段的重疊是這樣來算的,10 20 和 12 25 的重疊部分為 12 20 給出n條線段的起點和終點,從中選出2條線段,這兩條線段的重疊部分是最長的。輸出這個最長的距離。如果沒有重疊,輸出0。input 第1行 線段的數量n 2 n 50000 第2 ...

51nod 1091 線段的重疊(貪心)

x軸上有n條線段,每條線段包括1個起點和終點。線段的重疊是這樣來算的,10 20 和 12 25 的重疊部分為 12 20 給出n條線段的起點和終點,從中選出2條線段,這兩條線段的重疊部分是最長的。輸出這個最長的距離。如果沒有重疊,輸出0。input 第1行 線段的數量n 2 n 50000 第2 ...