首页 > 其他 > 详细

问题 K: 找点

时间:2016-08-24 12:58:20      阅读:119      评论:0      收藏:0      [点我收藏+]

题目描述

上数学课时,老师给了LYH一些闭区间,让他取尽量少的点,使得每个闭区间内至少有一个点。但是这几天LYH太忙了,你们帮帮他吗?

输入

多组测试数据。
每组数据先输入一个N,表示有N个闭区间(N≤100)。
接下来N行,每行输入两个数a,b(0≤a≤b≤100),表示区间的两个端点。

输出

输出一个整数,表示最少需要找几个点。

样例输入

4
1 5
2 4
1 4
2 3
3
1 2
3 4
5 6
1
2 2

样例输出

1
3
1
技术分享
 1 #include<stdio.h>
 2 #include<algorithm>
 3 
 4 using namespace std;
 5 struct st {
 6     int l, r;
 7 }date[101];
 8 
 9 int cmp(st x,st y) {
10     if(x.r != y.r)
11         return x.r < y.r;
12     return x.l < y.l;
13 }
14 
15 int main( ) {
16     int n;
17     while(scanf("%d", &n) != EOF) {
18         for(int i = 0; i < n; i ++)
19             scanf("%d%d", &date[i].l, &date[i].r);
20         sort(date, date + n, cmp);
21         int ans = 1;
22         int k = date[0].r;
23         for(int j = 1; j < n;j ++) {
24             if(date[j].l>k) {
25                 k = date[j].r;
26                 ans ++;
27             }
28         }
29         printf("%d\n", ans);
30     }
31     return 0;
32 }
View Code

 

问题 K: 找点

原文:http://www.cnblogs.com/tong69/p/5802152.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!