題目:有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...