我以為只是起點從小到大,終點從大到小排序就行了,然後兩個兩個的找重疊部分就行了,結果。。。這種情況不行:
5 2 8
2 4
3 7
這種是第乙個和第三個重疊最大~~~
所以要維護乙個 i-1 之前終點的最大值,與第i次的終點取最小,才是重疊區間的終點。。。
重疊部分的起點就是i的起點,因為是遞增的~
#include"iostream"
#include"algorithm"
using
namespace
std;
const
int maxn=5e4+5;
int n;
struct aaa
cout
<"\n";
}}
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 ...