nyoj 891 找点

来源:互联网 发布:淘宝卖家登录 编辑:程序博客网 时间:2024/05/01 23:26
找点
时间限制:2000 ms  |  内存限制:65535 KB
难度:2
描述
上数学课时,老师给了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


每次取尽量往后取点。。。

代码:
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int n,s,lp;struct node{int k,j;}bian[120];bool cmp(node xx,node yy){return xx.j<yy.j;}int main(){while (~scanf("%d",&n)){int a,b;for (int i=0;i<n;i++){scanf("%d%d",&a,&b);if (a>b){a=a+b;b=a-b;a=a-b;}bian[i].k=a;bian[i].j=b;}sort(bian,bian+n,cmp);s=0;lp=-1;for (int i=0;i<n;i++){if (bian[i].k>lp){lp=bian[i].j;s++;}}printf("%d\n",s);}return 0;}


0 0
原创粉丝点击