51NOD 1091 线段重叠 51 NOD 1133不重叠线段 贪心

来源:互联网 发布:java 查看线程状态 编辑:程序博客网 时间:2024/05/22 13:06

1091 线段的重叠
基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题
收藏
关注
X轴上有N条线段,每条线段包括1个起点和终点。线段的重叠是这样来算的,[10 20]和[12 25]的重叠部分为[12 20]。
给出N条线段的起点和终点,从中选出2条线段,这两条线段的重叠部分是最长的。输出这个最长的距离。如果没有重叠,输出0。
Input
第1行:线段的数量N(2 <= N <= 50000)。第2 - N + 1行:每行2个数,线段的起点和终点。(0 <= s , e <= 10^9)
Output
输出最长重复区间的长度。
Input示例
51 52 42 83 77 9
Output示例
4

思路: 对左端点升序排序,右端点降序排序,每次更新右边的最远距离,并拿最远距离和当前最右比较,两者中最小的减去当前左端点的距离与maxn比较,更新最远距离和maxn即可

Code:

#include <iostream>#include <cstdio>#include <algorithm>using namespace std;const int AX = 5e4+666;struct Node{int l , r;}e[AX];bool cmp( const Node &a , const Node &b){if( a.l == b.l ) return a.r > b.r;else return a.l < b.l;}int main(){ios_base::sync_with_stdio(false);cin.tie(0);int n;cin>>n;for( int i = 0 ; i < n ; i++ ){cin >> e[i].l >> e[i].r;}sort( e, e + n, cmp );int far_r = e[0].r;int maxn = 0;for( int i = 1 ; i  < n ; i++ ){maxn = max( maxn , min(e[i].r , far_r) - e[i].l );if( e[i].r > far_r ){far_r = e[i].r;}}cout<<maxn<<endl;return 0;}

1133 不重叠的线段

基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题
收藏
关注
X轴上有N条线段,每条线段有1个起点S和终点E。最多能够选出多少条互不重叠的线段。(注:起点或终点重叠,不算重叠)。
例如:[1 5][2 3][3 6],可以选[2 3][3 6],这2条线段互不重叠。
Input
第1行:1个数N,线段的数量(2 <= N <= 10000)第2 - N + 1行:每行2个数,线段的起点和终点(-10^9 <= S,E <= 10^9)
Output
输出最多可以选择的线段数量。
Input示例
31 52 33 6
Output示例
2

这个和上面的是一种类型,上边求重叠长度,这个求不重叠数量,相对难一点点。 不过差不多。

思路:还是对左右排序,这次是对右端点升序排序,左端点降序,每次更新右端点。因为是要求不重叠,肯定要覆盖范围小才好。

#include <iostream>#include <algorithm>using namespace std;const int AX = 1e4+666;struct  Node{int l , r ;}e[AX];bool cmp( const Node &a , const Node &b ){if( a.r == b.r ) return a.l > b.l;else return a.r < b.r;}int main(){ios_base::sync_with_stdio(false);cin.tie(0);int n;cin>>n;for( int i = 0 ; i < n ; i++ ) {cin >> e[i].l >> e[i].r;}sort( e , e + n ,cmp );int far_r = e[0].r;int res = 1;for( int i = 1 ; i < n ; i++ ){if( e[i].l >= far_r  ) {res++;far_r = e[i].r;}}cout<<res<<endl;return 0;}


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 建筑施工升降机司机证怎么办 北京建筑施工证怎么办呢 模拟城市5水抽干了怎么办 ip地址错误网络无法接通怎么办 rhino模型太大打开半天怎么办 日本新干线车票丢了怎么办 房间太干燥怎么办又热 薄荷叶子全干了怎么办 水培栀子花叶子蔫了怎么办 薄荷叶叶边干了怎么办 碗莲叶子发黑腐烂怎么办 龟背叶叶子蔫了怎么办 夏天龟背竹蔫了怎么办 春羽叶子长黄斑怎么办 百合竹叶子发黄掉落怎么办 凤尾蕨叶子蔫了怎么办 绿地珊瑚蕨干了怎么办 翠云草叶子蔫了怎么办 珊瑚蕨叶子烂了怎么办 黑骨茶叶子黑斑怎么办 外场主持没有人互动怎么办 企业年报填错了怎么办 手机忘了放哪了怎么办 燃气卡车没气了怎么办 老房子拆了重建怎么办 加了差的汽油怎么办 事业单位未满5年怎么办 小学孩子不会制订学习计划怎么办 忘记提交原创怎么办百度熊掌号 计算机一级报名表填错了怎么办 离婚了不给孩子生活费怎么办 点击爱奇艺系统提示停止运行怎么办 电视机图像颜色变了怎么办 10万签约被拒怎么办 钢琴弹奏中的折指怎么办! 吉他琴头旋钮将琴头扭坏了怎么办? 1岁幼儿不爱吃饭怎么办 3岁幼儿不爱吃饭怎么办 4岁幼儿不爱吃饭怎么办 买票买了点映 怎么办 一年级孩子注意力不集中怎么办