• 洛谷1791/CODEVS1214线段覆盖


    本题地址: http://www.luogu.org/problem/show?pid=1791
    题目描述
    已知数轴上0< N<10000条线段。每条线段按照端点Ai和Bi(Ai<>Bi,i=1..N)定义。端点坐标在(-999,999)内,坐标为整数。有些线段可能相交。编程实现删除最少数目的线段,使得余下的任意两条线段不相交。
    输入输出格式
    输入格式:
    第一行为一整数N。接下来有N行,每行包含两个整数 (Ai 和 Bi), 用空格隔开。
    输出格式:
    整数p,即删除后余下的线段数。
    输入输出样例
    输入样例#1:
    3
    6 3
    1 3
    2 5
    输出样例#1:
    2
    排序,线性扫一遍,如果下一个顶点左端点比目前最大的右端点还大,就不用删。(就是个简单地贪心)

    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    #include<algorithm>
    using namespace std;
    const int N=105;
    struct node
    {
        int begin,end;
    }a[N];
    int cmp(node x,node y)
    {
        return x.end<y.end;
    }
    int main()
    {
        int maxn=-1005,n,i,ans=0,x,y;
        cin>>n;
        for(i=1;i<=n;i++)
        {
            cin>>x>>y;
            a[i].begin=min(x,y);
            a[i].end=max(x,y);
        }
        sort(a+1,a+n+1,cmp);
        for(i=1;i<=n;i++)
            if(a[i].begin>=maxn)
            {
                maxn=a[i].end;
                ans++;
            }
        cout<<ans;
        return 0;
    }
    

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    013.[转] 云原生
    012.[转] 云计算
    011.maven 继承与聚合
    Window常用且通用快捷键
    Hibernate Validator Engine的用法
    Mybatis书写
    Ajax错误
    apache commons lang架包介绍
    Mybatis使用Mybatis-generator插件及配置(数据库逆向工程)
    二分搜索树
  • 原文地址:https://www.cnblogs.com/wuhu-xiaoshen/p/4918622.html
Copyright © 2020-2023  润新知