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

    【题解】

      鲜活的大水题。。。

      把区间排个序然后瞎搞就可以了,发现现在区间的左端点比之前区间的最大的右端点还大,那就增加一个答案区间。每次更新目前最大右区间。

      

     1 #include<cstdio>
     2 #include<algorithm>
     3 #define N 200010
     4 #define rg register
     5 using namespace std;
     6 int n,m,tot;
     7 struct rec{
     8     int l,r;
     9 }a[N],ans[N];
    10 inline int read(){
    11     int k=0,f=1; char c=getchar();
    12     while(c<'0'||c>'9')c=='-'&&(f=-1),c=getchar();
    13     while('0'<=c&&c<='9')k=k*10+c-'0',c=getchar();
    14     return k*f;
    15 }
    16 inline bool cmp(rec x,rec y){
    17     if(x.l==y.l) return x.r<y.r;
    18     return x.l<y.l;
    19 }
    20 int main(){
    21     n=read(); 
    22     for(rg int i=1;i<=n;i++) a[i].l=read(),a[i].r=read();
    23     sort(a+1,a+1+n,cmp);
    24     ans[tot=1].l=a[1].l;
    25     int mxr=ans[1].r=a[1].r;
    26     for(rg int i=2;i<=n;i++){
    27         if(a[i].l>mxr){
    28             ans[++tot].l=a[i].l;
    29             ans[tot].r=a[i].r;
    30         }
    31         mxr=max(mxr,a[i].r);
    32         ans[tot].r=mxr;
    33     }
    34     for(rg int i=1;i<=tot;i++) printf("%d %d
    ",ans[i].l,ans[i].r);
    35     return 0;
    36 }
    View Code
  • 相关阅读:
    code#5 P2 棋子
    code#5 P1 报告
    ztz11的noip模拟赛T3:评分系统
    20181101noip模拟赛T1
    20181031noip模拟赛T2
    20181031noip模拟赛T1
    Linux进程的五个段
    进程和线程有什么区别
    shell中if条件字符串、数字比对,[[ ]]和[ ]区别
    Python实现单例模式
  • 原文地址:https://www.cnblogs.com/DriverLao/p/8688528.html
Copyright © 2011-2022 走看看