51nod 1133 不重叠的线段【贪心/区间覆盖】


1133不重叠的线段
基准时间限制:1秒 空间限制:131072KB 分值: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示例
3
15
23
36
Output示例
2

【分析】:http://www.cnblogs.com/dongsheng/archive/2013/04/19/3030444.html
【代码】:
#include <bits/stdc++.h>

using namespace std;
#define inf 1e18+100
#define LL long long
const int maxn = 1e4+10;

struct node
{
    int l,r;
}a[maxn];

bool cmp(node a,node b)
{
    return a.r<b.r;
   // return a.l<b.l;
}
int main()
{
    int n,ans=1;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a[i].l>>a[i].r;
    }
    sort(a,a+n,cmp);  //一般贪心/二分要排序
    int m=a[0].r;
    for(int i=1;i<n;i++)
    {
        if(a[i].l>=m)
        {
            ans++;
            m=a[i].r;
        }
    }
    cout<<ans<<endl;
    return 0;
}
View Code

优质内容筛选与推荐>>
1、Openstack oslo.config【一】
2、优秀学习资源汇总
3、Spring Boot中mybatis insert 如何获得自增id
4、随想录(qemu仿真linux kernel)
5、Java接口与抽象类的区别


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn