#include#include#include
using
namespace
std;
typedef pair
pii;
intn;
void merge(vector&interval)
); //
! 第一次在這裡初始化
st = item.first, ed = item.second;//
! 第一段區間從這裡開始
}
else ed =max(ed, item.second);
}//todo 這個迴圈結束之後還會剩下乙個區間
if(st!=-1e9-10) ans.push_back(); //
! 如果不是空的 那我們就加上一段
interval =ans;
}int main(void
));
}merge(interval);
cout
<< interval.size()
}
介紹一種結構體合併區間的演算法。
#include#include#include
using
namespace
std;
const
int n = 100010
;struct
nodea[n];
intn;
bool cmp(node c,node d)
intmain()
cout
<< ans
}
AcWing 803 區間合併
給定 n 個區間 li,ri 要求合併所有有交集的區間。注意如果在端點處相交,也算有交集。輸出合併完成後的區間個數。例如 1,3 和 2,6 可以合併為乙個區間 1,6 第一行包含整數n。接下來n行,每行包含兩個整數 l 和 r。共一行,包含乙個整數,表示合併區間完成後的區間個數。1 n 10000...
AcWing 803 區間合併 C
注意如果在端點處相交,也算有交集。輸出合併完成後的區間個數。例如 1,3 和 2,6 可以合併為乙個區間 1,6 輸入格式 第一行包含整數n。接下來n行,每行包含兩個整數 l 和 r。輸出格式 共一行,包含乙個整數,表示合併區間完成後的區間個數。資料範圍 1 n 100000,109 li ri 1...
803 區間合併
給定 n 個區間 l i,r i 要求合併所有有交集的區間。注意如果在端點處相交,也算有交集。輸出合併完成後的區間個數。例如 1,3 和 2,6 可以合併為乙個區間 1,6 輸入格式 第一行包含整數n。接下來n行,每行包含兩個整數 l 和 r。輸出格式 共一行,包含乙個整數,表示合併區間完成後的區間...