LOJ#10007. 「一本通 1.1 练习 3」线段

题目描述

数轴上有 nnn 条线段,选取其中 kkk 条线段使得这 kkk 条线段两两没有重合部分,问 kkk 最大为多少。

输入格式

第一行为一个正整数 nnn;

在接下来的 nnn 行中,每行有 222 个数 ai,bia_i, b_iai​​,bi​​,描述每条线段。

输出格式

输出一个整数,为 kkk 的最大值。

样例

样例输入

3
0 2
2 4 
1 3

样例输出

2
 1 //2018-08-09 20:03:29
 2 #include <iostream>
 3 #include <cstdio>
 4 #include <cstring>
 5 #include <algorithm>
 6 using namespace std;
 7 
 8 const int N = 1000001;
 9 int n;
10 struct node{
11     int l, r;
12 }a[N];
13 
14 bool cmp(node a, node b){
15     return a.r < b.r;
16 }
17 int ans;
18 
19 int main(){
20     cin >> n;
21     for(int i=1; i<=n; i++){
22         cin >> a[i].l >> a[i].r;
23     }
24     sort(a+1, a+n+1, cmp); 
25     int ed = a[1].r;
26     for(int i=2; i<=n; i++){
27         if(a[i].l >= ed){
28             ed = a[i].r;
29             ans++;
30         }
31     }
32     printf("%d\n", ans+1);
33 
34     return 0;
35 }

猜你喜欢

转载自www.cnblogs.com/sineagle/p/9451496.html