当前位置: 代码迷 >> 综合 >> P1803 凌乱的yyy
  详细解决方案

P1803 凌乱的yyy

热度:64   发布时间:2023-10-09 11:04:17.0

题目描述

有N场比赛,给出每场比赛的开始时间和结束时间,问最多参加多少场比赛。

样例输入

3
0 2
2 4
1 3

样例输出

2

思路

O(n log n)
将结束时间或开始时间排序都可以,在另外一条序列中选择上一场比赛和下一场比赛开始时间不冲突的比赛加入。
varn:longint;a,b:array[1..2000000] of longint;
procedure qsort(l,r:longint);
vari,j,m,t:longint;
begini:=l;j:=r;m:=b[(l+r)div 2];repeatwhile b[i]<m do inc(i);while b[j]>m do dec(j);if i<=j thenbegint:=a[i];a[i]:=a[j];a[j]:=t;t:=b[i];b[i]:=b[j];b[j]:=t;inc(i);dec(j);end;until i>j;if i<r then qsort(i,r);if l<j then qsort(l,j);
end;
vari,ans,sum:longint;
beginreadln(n);for i:=1 to n doreadln(a[i],b[i]);qsort(1,n);ans:=b[1];for i:=2 to n doif a[i]>=ans thenbegininc(sum);ans:=b[i];end;writeln(sum+1);
end.