51 Nod 1091 線段的重疊

2022-03-16 12:57:41 字數 801 閱讀 3163

2017-09-24 19:51:41

writer:pprp

上乙個題目就是關於線段重疊最大值,這個是找區間最長重合?

給你n個線段,然後讓你在其中選擇兩條,使兩條盡可能重合多一點

解決方法;

1、將所有線段進行排序,按照起點公升序,終點降序的方法排序

2、找到乙個對比區間,有兩個操作

(1)如果區間在對比區間中,那麼進行比較記錄

(2)如果區間在對比區間之外,那麼繼續比較,並且更新對比區間,因為如果依然對比這個區間,相比當前的區間,原來的對比區間更加沒有可能取得結果

**如下:

#include #include 

using

namespace

std;

const

int maxn = 50050

;struct

node

pprp[maxn];

bool cmp(const node & n1, const node &n2)

intmain()

sort(pprp,pprp+num,cmp);

node cp = pprp[0

];

int ans = -100

;

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

}if(ans == -100

) cout

<< "0"

cout

<< ans

}

51nod 1091 線段的重疊

基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 x軸上有n條線段,每條線段包括1個起點和終點。線段的重疊是這樣來算的,10 20 和 12 25 的重疊部分為 12 20 給出n條線段的起點和終點,從中選出2條線段,這兩條線段的重疊部分是最長的。輸出這個最長的距離。...

51nod1091 線段的重疊

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 ...