贪心算法——区间找点问题
来源:互联网 发布:跑步路线规划软件 编辑:程序博客网 时间:2024/06/16 13:54
找点
时间限制: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
3
思想:按区间右端点的大小顺序由小到大进行排序。最开始以首个区间的右端点作为基准点,用下一个区间的左端点与其进行比较,如果是错开的,那么说明要增加一个点数,然后以这个区间的右端点作为一个新的基准,进行下次比较。
代码如下:
#include<stdio.h>struct Node{ int left; int right;}a[100];void sort(struct Node* A,int N){ int j,p; struct Node temp; for(p=1;p<N;p++) { temp=A[p]; for(j=p;j>0&&A[j-1].right>temp.right;j--) A[j]=A[j-1]; A[j]=temp; }} int main(){ int n,i,j,sum; while(scanf("%d",&n)!=EOF) { sum=1; for(i=0;i<n;i++) scanf("%d%d",&a[i].left,&a[i].right); sort(a,n); for(i=0,j=0;i<n;i++) { if(a[i].left > a[j].right) { j=i; sum++; } } printf("%d\n",sum); } return ;}
0 0
- 贪心算法——区间找点问题
- NYOJ - 891 - 找点(区间相关问题---区间选点-贪心算法)
- 贪心算法之区间取点问题
- 贪心法 区间选点问题 南阳oj 找点
- NYOJ891 找点(贪心区间选点问题)
- nyoj 891 找点(贪心,区间选点问题)
- nyoj 891 找点 贪心 区间选点问题
- NYOJ891(找点)(贪心之区间覆盖问题)
- 贪心算法——找纸币问题
- 贪心算法——找零钱问题
- 贪心算法——区间调度问题
- NYOJ 891 找点 (贪心&区间选点)
- nyoj891找点(区间上的贪心)
- 找零钱问题—贪心
- 贪心算法——有关区间的问题
- 贪心算法专题小结——区间相关问题
- 区间调度问题 ----- 贪心算法
- 贪心算法,关于区间问题
- jQuery Mobile 笔记三
- 由一个简单示例 引出java继承中父子类成员变量共享问题 以及super的使用
- ng-if
- POJ 3176 Cow Bowling(基础DP)
- TASKKILL命令使用大全 用来终止进程的
- 贪心算法——区间找点问题
- Codevs 3287 货车运输 2013年NOIP全国联赛提高组(带权LCA+并查集+最大生成树)
- 用struts2 的<s:submit>显示的图标为什么会靠上显示,而不是居中显示
- XZ_iOS之在webView的头部添加一个头视图并随着webView滚动,webView底部的黑色部分去掉
- 安卓网络(一)
- JS return false 与 return true
- 易语言程序防破解的常用方法
- C/C++指针数组和数组指针
- 记一次与木马的战斗