input示例
3output示例1 52 3
3 6
2題意:給出n條一維線段,求不重合的最多線段數。
解析:這個是典型的貪心演算法的區間問題。
貪心策略:每次取盡可能短的區間,而且保證相互之間不重合。那麼我們將區間的右邊界進行公升序排序(左邊界要從右往左考慮),然後開迴圈掃瞄,維護乙個右邊界,進行判斷。以下是我的**
#include "bits/stdc++.h
"using
namespace
std;
#define rep(i, s, n) for(int i=s;iconst
int n=10010
;struct
searr[n];
bool cmp(struct se &a,struct se &b)
intmain()}}
printf(
"%d\n
",cnt);
}return0;
}
51Nod1133 不重疊的線段
x軸上有n條線段,每條線段有1個起點s和終點e。最多能夠選出多少條互不重疊的線段。注 起點或終點重疊,不算重疊 例如 1 5 2 3 3 6 可以選 2 3 3 6 這2條線段互不重疊。經典的序列上的區間問題。明顯的貪心 把右端點從小到大排乙個序 第一關鍵字 左端點從小到大排乙個序 第二關鍵字 然後...
51Nod 1133 不重疊的線段
x軸上有n條線段,每條線段有1個起點s和終點e。最多能夠選出多少條互不重疊的線段。注 起點或終點重疊,不算重疊 例如 1 5 2 3 3 6 可以選 2 3 3 6 這2條線段互不重疊。input 第1行 1個數n,線段的數量 2 n 10000 第2 n 1行 每行2個數,線段的起點和終點 10 ...
51nod 1133 不重疊的線段
x軸上有n條線段,每條線段有1個起點s和終點e。最多能夠選出多少條互不重疊的線段。注 起點或終點重疊,不算重疊 例如 1 5 2 3 3 6 可以選 2 3 3 6 這2條線段互不重疊。input 第1行 1個數n,線段的數量 2 n 10000 第2 n 1行 每行2個數,線段的起點和終點 10 ...