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

2021-07-23 21:29:34 字數 572 閱讀 3487

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

將結構體陣列按尾部排序,以最大的尾部開始計算重疊(當然也可以將結構體陣列以首部排序,以最小的首部開始計算重疊)。

可以發現,如果以最大尾部(記a0)開始計算,那麼第二大尾部(記a1)一定比最大尾部小,然後a1首部比a0首部小的話,那麼用a1與下乙個計算重疊(貪心),a1首部比a0首部大的話,仍用a0與下乙個計算重疊。

#include 

#include

#include

#include

#include

using

namespace

std;

#define inf 0x3f3f3f3f

const

int n = 5*1e4+10;

struct xian

line[n];

bool cmp(xian a,xian b)

int main()

else

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

return

0;}

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