zoukankan      html  css  js  c++  java
  • 洛谷P2434 [SDOI2005]区间

    传送门

    这个题第一眼以为是一道区间合并(但其实就是区间合并),如果用区间合并的话只要输出合并不了的区间就行了。这个题不用区间合并也行,比方说贪心,那么贪心策略是什么呢?这时区间合并就提供给我们思路了,因此我们先排序左端点,比较右端点和下一个左端点的大小,如果合并不了就输出,继续判断下一组,这就是我们的贪心策略。

    其实这个题本质还是结构体排序,因此对新学结构体的人来说是一道很好地练习题。

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    
    using namespace std;
    
    int n;
    
    struct A
    {
        int l,r;
    }a[50050];
    
    bool cmp(A x,A y)
    {
        return x.l<y.l;
    }
    
    int main()
    {
        int i,j;
        cin>>n;
        for(int i=1;i<=n;i++) cin>>a[i].l>>a[i].r;
        sort(a+1,a+1+n,cmp);
        int ansl=a[1].l,ansr=a[1].r;
        for(int i=2;i<=n;i++)
        {
            if(a[i].l<=ansr) ansr=max(ansr,a[i].r);
            else
            {
                cout<<ansl<<" "<<ansr<<endl;
                ansl=a[i].l;
                ansr=a[i].r;
            }
        }
        cout<<ansl<<" "<<ansr<<endl;
        return 0;
    }
  • 相关阅读:
    stl_heap
    关于随机数 C++
    关于if语句的细节
    C++关于智能指针
    sqlyog
    win10 64位 汇编环境
    Qt 乱码
    Vux使用经验
    Flex布局新旧混合写法详解
    【原】npm 常用命令详解
  • 原文地址:https://www.cnblogs.com/lizhengde/p/13509889.html
Copyright © 2011-2022 走看看