選擇盡可能多的不相交區間

2021-09-08 16:39:28 字數 565 閱讀 3263

題目:有n個區間,[ai, bi), 統計不相交區間最多有多少個?

貪心策略:將這n個區間按bi由小到大排序,然後從前向後遍歷,每當遇到不相交的區間就加入目標集合,遍歷完成後就找到了最多的不相交區間。

正確性證明:參見

以下是hduoj2037的源**:

#include #include #include #define pi 3.1415927

using namespace std;

struct activity ;

void bubblesort(activity *ac, int size)

} }}int main()

bubblesort(ac, n);

int count = 1;//第乙個肯定要加進來

int t = ac[0].t;//維護不相交區間集合最大的t

for(int i=1; i=t)

} cout << count << endl;

deleteac;

} return 0;

}

選擇盡可能多的不相交區間

題目 有n個區間,ai,bi 統計不相交區間最多有多少個?貪心策略 將這n個區間按bi由小到大排序,然後從前向後遍歷,每當遇到不相交的區間就加入目標集合,遍歷完成後就找到了最多的不相交區間。正確性證明 參見 以下是hduoj2037的源 include include include define ...

選擇不相交區間

思路 為什麼要這樣做呢 首先分析一下題意,就是選擇盡量多的不相交區間,那麼我們就要去掉一些區間,使剩下 的區間不相交,那麼我們要去掉什麼樣的區間呢?我們假設區間 a1,b1 a2,b2 1,如果a1b2,我們說區間1包含區間2,那麼我們就要去掉區間1 2,如果a1 a2 b1 b2,這時候我們仍然要...

選擇不相交區間

選擇不相交區間題目描述 數軸上有n開區間 ai,bi 請選擇盡量多的 區間,使其兩兩不相交。輸入第一行n 之後n行,每行兩個數分別為ai,bi 輸出最多能選擇的區間個數 樣例輸入 31 3 2 43 5 樣例輸出2提示 對於20 的資料,n 10 對於50 的資料,n 1000 對於70 的資料,n...