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^9 <= s,e <= 10^9)
output
輸出最多可以選擇的線段數量。
input示例
3 1 5
2 3
3 6
output示例
2典型的區間問題。求最多能夠選出多少條互不重疊的線段。跟杭電2037類似,,按照終點排序,o(n)掃一下即可。
#include
using
namespace
std;
typedef
long
long ll;
const
int maxn = 1e5+100;
typedef pairp;
pairseg[maxn];
bool cmp(p a,p b)
sort(seg,seg+n,cmp);
int tmp=-(1
<<30);
int sum=0;
for(int i=0;iif(seg[i].first>=tmp)
}cout
0;}
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 不重疊的線段
1133 不重疊的線段 基準時間限制 1 秒 空間限制 131072 kb 分值 10 難度 2級演算法題 x軸上有n條線段,每條線段有1個起點s和終點e。最多能夠選出多少條互不重疊的線段。注 起點或終點重疊,不算重疊 例如 1 5 2 3 3 6 可以選 2 3 3 6 這2條線段互不重疊。inp...