51Nod 1133 不重疊的線段 典型貪心

2022-07-05 13:30:24 字數 633 閱讀 2174

input示例

3

1 52 3

3 6

output示例

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 ...