51nod - 1091
題目:x軸上有n條線段,每條線段包括1個起點和終點。線段的重疊是這樣來算的,[10 20]和[12 25]的重疊部分為[12 20]。
給出n條線段的起點和終點,從中選出2條線段,這兩條線段的重疊部分是最長的。輸出這個最長的距離。如果沒有重疊,輸出0。
input
第1行:線段的數量n(2 <= n <= 50000)。
第2 - n + 1行:每行2個數,線段的起點和終點。(0 <= s , e <= 10^9)
output
輸出最長重複區間的長度。
input示例
5
1 52 4
2 83 7
7 9
output示例
4
這是一道貪心演算法的題,自己真的是非常的菜,在那裡模擬了半天,然後又借鑑了網上大佬們的部落格,才算理解了一點點。
思路: 先將輸入的區間起點按公升序排序,若起點相同則按終點降序排序,排序完之後用貪心的思想,找區域性最優解。
也不是很會說,直接看**吧~
#include #include using namespace std;
struct nodea[50050];
int cmp(node a,node b)
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 ...