openjudge 區間合併(貪心)

2021-08-07 16:44:29 字數 877 閱讀 3502

總時間限制: 

1000ms 

記憶體限制: 

65536kb

描述

給定 n 個閉區間 [ai; bi],其中i=1,2,...,n。任意兩個相鄰或相交的閉區間可以合併為乙個閉區間。例如,[1;2] 和 [2;3] 可以合併為 [1;3],[1;3] 和 [2;4] 可以合併為 [1;4],但是[1;2] 和 [3;4] 不可以合併。

我們的任務是判斷這些區間是否可以最終合併為乙個閉區間,如果可以,將這個閉區間輸出,否則輸出no。

輸入第一行為乙個整數n,3 ≤ n ≤ 50000。表示輸入區間的數量。

之後n行,在第i行上(1 ≤ i ≤ n),為兩個整數 ai 和 bi ,整數之間用乙個空格分隔,表示區間 [ai; bi](其中 1 ≤ ai ≤ bi ≤ 10000)。

輸出輸出一行,如果這些區間最終可以合併為乙個閉區間,輸出這個閉區間的左右邊界,用單個空格隔開;否則輸出 no。

樣例輸入

5

5 61 5

10 10

6 98 10

樣例輸出

1 10

根據左端點進行排序,使用pair天然的根據first物件自動排序的性質。貪心

#include#include#includeusing namespace std;

typedef pairpr;

vectorv;

int n;

int main()

sort(v.begin(),v.end());

int l=v[0].first;int r=v[0].second;

for(int i=1;i

leetcode 合併區間 貪心

給出乙個區間的集合,請合併所有重疊的區間。示例 1 輸入 intervals 1,3 2,6 8,10 15,18 輸出 1,6 8,10 15,18 解釋 區間 1,3 和 2,6 重疊,將它們合併為 1,6 示例 2 輸入 intervals 1,4 4,5 輸出 1,5 解釋 區間 1,4 和...

leetcode 56 合併區間(貪心)

給出乙個區間的集合,請合併所有重疊的區間。示例 給出 1,3 2,6 8,10 15,18 返回 1,6 8,10 15,18 貪心,先以start大小排序,這樣保證start的是有序的。然後擴張end。也很容易理解,複雜度是nlogn definition for an interval.stru...

openjudge 貪心 裝箱問題

乙個工廠製造的產品形狀都是長方體,它們的高度都是h,長和寬都相等,一共有六個型號,他們的長寬分別為1 1,2 2,3 3,4 4,5 5,6 6。這些產品通常使用乙個 6 6 h 的長方體包裹包裝然後郵寄給客戶。因為郵費很貴,所以工廠要想方設法的減小每個訂單運送時的包裹數量。他們很需要有乙個好的程式...