NYOJ 891 找点
2015-07-23 19:49
239 查看
找点
时间限制: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 <stdio.h> #include <algorithm> using namespace std; struct Node { int x,y; }s[100]; int cmp(Node a,Node b) { return a.y<b.y;//按照后端点升序排列 } int main() { int n,i,j,k; while(scanf("%d",&n)!=EOF) { k=1; for(i=0;i<n;i++) scanf("%d%d",&s[i].x,&s[i].y); sort(s,s+n,cmp); for(i=1,j=0;i<n;i++) //若满足条件说明两者没有公共区域 if(s[i].x>s[j].y) { k++;//统计需要找的点数 j=i;//记录下标,实时更新s[j].y的值 } printf("%d\n",k); } return 0; }
相关文章推荐
- MAC系统下phpstorm不能基于MAXP使用MongoDB的结局办法
- 滑雪
- hdu 5301 Buildings 2015 Multi-University Training Contest 2
- 云计算和大数据时代网络技术揭秘(十四)虚拟桌面
- 滑雪 分类: POJ 2015-07-23 19:48 9人阅读 评论(0) 收藏
- JavaScript简介
- LeetCode -- 判断链表中是否有环
- DOM生成和XML文档解析
- HDUOJ2014(快排)
- golang
- hd1312
- OC字典01基础
- 类的前向声明
- 别说对不起,你没那么爱我了
- 让XCode的 Stack Trace信息可读
- NSDate日期的类
- Hive的Security配置
- 创建层级目录命令mkdir -p
- leetcode 055 —— Jump Game
- PAT (Advanced Level) 1030. Travel Plan (30) Dijkstra最短路径