admin管理员组

文章数量:1023684

nyoj 找点 酒馆浪人的博客

找点

时间限制: 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
代码如下
     01.#include<stdio.h>02.#include<algorithm>03.using namespace std;04.struct node05.{06.int a;07.int b;08.} s[200];09.bool cmp(node x,node y)10.{11.return x.b<y.b;12.}13.int main()14.{15.int N;16.while(~scanf("%d",&N))17.{18.for(int i=0;i<N;i++)19.{20.scanf("%d%d",&s[i].a,&s[i].b);21.}22.sort(s,s+N,cmp);23.int j=0,ans=1;24.for(int i=1;i<N;i++)25.{26.if(s[i].a>s[j].b)27.{28.++ans;29.j=i;30.}31.}32.printf("%d\n",ans);33.}34.return 0;35.} 解题核心,明白题意排序即可

nyoj 找点 酒馆浪人的博客

找点

时间限制: 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
代码如下
     01.#include<stdio.h>02.#include<algorithm>03.using namespace std;04.struct node05.{06.int a;07.int b;08.} s[200];09.bool cmp(node x,node y)10.{11.return x.b<y.b;12.}13.int main()14.{15.int N;16.while(~scanf("%d",&N))17.{18.for(int i=0;i<N;i++)19.{20.scanf("%d%d",&s[i].a,&s[i].b);21.}22.sort(s,s+N,cmp);23.int j=0,ans=1;24.for(int i=1;i<N;i++)25.{26.if(s[i].a>s[j].b)27.{28.++ans;29.j=i;30.}31.}32.printf("%d\n",ans);33.}34.return 0;35.} 解题核心,明白题意排序即可

本文标签: nyoj 找点 酒馆浪人的博客