最大不重叠区间
来源:互联网 发布:esp8266 单片机 编辑:程序博客网 时间:2024/06/06 05:00
http://zju.acmclub.com/index.php?app=problem_title&id=1&problem_id=1126
RT,给定n个区间,每个区间有开始时间si和结束时间ei,
问在数轴上如何摆放能使在没有重叠区间的情况下区间数目达到最大?
分析:典型的贪心思路,在《算法导论》贪心那一章的第一个例子即是它——活动选择问题
解法:按区间的结束时间从小到大排序后,从小的区间按顺序选取;
(1)如果当前区间与已经覆盖的位置重叠(与当前最右位置进行比较),则舍弃;
(2)否则将此区间摆放在数轴上并更新当前已经覆盖的最右位置
cpp代码:
#include<iostream>using namespace std;int main(){ struct SEGMENT{ int x; int y; }; int n,si,ei,pos,k,tmp,i,cur; struct SEGMENT seg[101]; while(cin>>n){ pos = 0; if(n==0)break; while(n--){ cin>>si>>ei; seg[pos].x=si; seg[pos].y=ei; pos++; } //BubbleSort for(k=1;k<pos;k++){ for(i=0;i<pos-k;i++){ if(seg[i].y>seg[i+1].y){ //swap tmp=seg[i+1].y; seg[i+1].y=seg[i].y; seg[i].y=tmp; tmp=seg[i+1].x; seg[i+1].x=seg[i].x; seg[i].x=tmp; } } } //main process cur=seg[0].y; int cnt=1; for(k=1;k<pos;k++){ if(seg[k].x>=cur){ cur=seg[k].y; cnt++; } } cout<<cnt<<endl; } return 0;}
0 0
- 最大不重叠区间
- 最大重叠区间大小
- 最大区间重叠.
- 求最大重叠区间大小
- zoj3953 Intervals 最大不重叠区间加强版 zoj排名第一~
- 【数字题3】最大重叠子区间
- 157 求最大重叠区间大小
- 笔记——最大重叠区间数
- 区间重叠
- 面试题精选(69):求最大重叠区间大小
- 11776 - Oh Your Royal Greediness!(最大重叠区间)
- UVA 10535 - Shooter(扫描+几何+最大重叠区间)
- HDU 5124 lines 最大区间重叠点(离散化)
- 最大重叠区间数目 Maximum number of overlapping intervals
- hdoj1050 moving tables 贪心 最大重叠区间数
- codeforce 754-D(求最大k个重叠区间)
- 51Nod 1133 不重叠的线段 (区间贪心
- 贪心法:最大不相交区间数
- C++实现RTMP协议发送H.264编码及AAC编码的音视频
- SpringMVC 源代码深度解析 IOC容器(Bean 解析、注册)
- Web前端开发规范(一)
- 交换机和路由器的实现原理
- java中静态初始化问题
- 最大不重叠区间
- 1秒进一次计数 编程
- rational rose 画自关联
- 判断是大端序还是小端序
- C的二进制表示
- 使用C#编写JavaScript,Saltarelle库的使用
- Android开发:使用DDMS Heap进行内存泄露调试
- Web前端开发规范(二)
- phpcms出现登录总是提示超时需重新登录