zoukankan      html  css  js  c++  java
  • 51nod 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示例
    3
    1 5
    2 3
    3 6
    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
  • 相关阅读:
    virtualenv -- python虚拟沙盒
    python 多继承详解
    GCDAsyncSocket类库,IOS下TCP通讯使用心得
    TCP长连接与短连接的区别
    SOCKET类型定义及应用
    Ubuntu增加Swap分区大小
    log4j使用说明
    maven资料
    资料推荐
    Idea操作与问题解决
  • 原文地址:https://www.cnblogs.com/Roni-i/p/7778262.html
Copyright © 2011-2022 走看看