2017-09-24 19:51:41
writer:pprp
上乙個題目就是關於線段重疊最大值,這個是找區間最長重合?
給你n個線段,然後讓你在其中選擇兩條,使兩條盡可能重合多一點
解決方法;
1、將所有線段進行排序,按照起點公升序,終點降序的方法排序
2、找到乙個對比區間,有兩個操作
(1)如果區間在對比區間中,那麼進行比較記錄
(2)如果區間在對比區間之外,那麼繼續比較,並且更新對比區間,因為如果依然對比這個區間,相比當前的區間,原來的對比區間更加沒有可能取得結果
**如下:
#include #includeusing
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 ...