zoukankan      html  css  js  c++  java
  • BZOJ 5168 && Luogu P3740 [HAOI2014]贴海报 线段树~~

    据说某谷数据十分水。。。但幸好BZOJ上也过了。。。话说我记得讲课时讲的是奇奇怪怪的离散化。。但现在突然觉得什么都可以线段树瞎搞了。。。QAQ


    直接就是这个区间有没有被覆盖,被覆盖直接return; 如果出现修改,那么就说明它能被看见,++ans

    短的一批的线段树(去了不必要的操作码量还是很小的。。。)

    #include<cstdio>
    #include<iostream>
    #define R register int
    #define ls (tr<<1)
    #define rs (tr<<1|1)
    const int N=10000010,M=1010;
    using namespace std;
    inline int g() {
        R ret=0,fix=1; register char ch; while(!isdigit(ch=getchar())) fix=ch=='-'?-1:fix;
        do ret=ret*10+(ch^48); while(isdigit(ch=getchar())); return ret*fix;
    } int n,m,ans,l[M],r[M];
    bool flg[N<<2],cv;
    inline void change(int tr,int l,int r,int LL,int RR) {
        if(flg[tr]) return ; if(LL<=l&&r<=RR) {flg[tr]=cv=true; return ;}
        R md=l+r>>1; if(LL<=md) change(ls,l,md,LL,RR); if(RR>md) change(rs,md+1,r,LL,RR); 
        flg[tr]=flg[ls]&flg[rs];
    }
    signed main() {
        n=g(),m=g(); for(R i=1;i<=m;++i) l[i]=g(),r[i]=g();
        for(R i=m;i;--i) cv=false,change(1,1,n,l[i],r[i]),ans+=cv;
        printf("%d
    ",ans);
    }

    2019.04.27

  • 相关阅读:
    SimpleDateFormat
    上传带进度条
    cookie和session
    poi导出数据
    commons-fileupload上传文件
    java异常处理
    常用的数据库MySql数据库语句总结
    流的文件操作
    Java输入输出流总结(转载)
    集合总结
  • 原文地址:https://www.cnblogs.com/Jackpei/p/10781193.html
Copyright © 2011-2022 走看看