zoukankan      html  css  js  c++  java
  • P2184 贪婪大陆 树状数组

    树状数组帅炸了。。。。又被一道水题轻虐,又被学长指出了一个错误。。。。我太菜了QAQ

    开两个树状数组,一个记录左端点,一个记录右端点;

    共有cnt(总数) - (<l的右端点数目) - (>r的右端点数目) 种地雷

    #include<cstdio>
    #include<iostream>
    #define R register int
    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,c[2][100010],m,cnt;
    inline int max(int a,int b) {return a>b?a:b;}
    inline int lbt(int x) {return x&(-x);}
    inline void add(int k,int pos) {for(;pos<=n;pos+=lbt(pos)) ++c[k][pos];}
    inline int query(int k,int pos) { R ret=0;
        for(;pos;pos-=lbt(pos)) ret+=c[k][pos]; return ret;    
    }
    signed main() {
        n=g(),m=g();
        for(R i=1;i<=m;++i) {
            R k=g(),l=g(),r=g();
            if(k&1) add(0,l),add(1,r),++cnt;
            else printf("%d
    ",cnt-query(1,l-1)-query(0,n)+query(0,r));
        }
    }

    2019.04.07

  • 相关阅读:
    隐藏NGINX服务器名称 和版本号
    salt-grains
    格式化输出文本的方法
    递归例子
    yield 生成器例子
    Python基础之函数
    Python基础之面向对象
    Python基础之模块2
    Python基础之字符编码
    Python基础之文件操作
  • 原文地址:https://www.cnblogs.com/Jackpei/p/10665163.html
Copyright © 2011-2022 走看看