題幹:
x軸上有n條線段,每條線段有1個起點s和終點e。最多能夠選出多少條互不重疊的線段。(注:起點或終點重疊,不算重疊)。
例如:151523233636,可以選23233636,這2條線段互不重疊。
input
第1行:1個數n,線段的數量(2 <= n <= 10000)
第2 - n + 1行:每行2個數,線段的起點和終點(-10^9 <= s,e <= 10^9)
output
輸出最多可以選擇的線段數量。
sample input
3sample output1 52 3
3 6
2解題報告:
按終點排序,也就是貪心出對後面影響最小的。
ac**:
#includeusing namespace std;
int bk[30];
struct node node[10000 + 5];
bool cmp(const node a,const node b)
sort(node+1,node+n+1,cmp);
cure = node[1].e;
ans = 1;
for(int i = 2; i<=n; i++)
cout
}
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 ...