• P1840 Color the Axis_NOI导刊2011提高(05)


    #include<cstdio>
    #define MAXN 200005
    
    int n,m;
    
    struct Segment_Tree{
    	int c[MAXN<<2],tag[MAXN<<2];
    	inline void build(int k,int l,int r){
    		if(l==r){
    			c[k]=1;
    			return;
    		}
    		int mid=(l+r)>>1;
    		build(k<<1,l,mid);
    		build(k<<1|1,mid+1,r);
    		c[k]=c[k<<1]+c[k<<1|1];
    	}
    	inline void pushdown(int k,int l,int r){
    		if(!tag[k])return;
    		int mid=(l+r)>>1;
    		c[k<<1]=0;
    		tag[k<<1]+=tag[k];
    		c[k<<1|1]=0;
    		tag[k<<1|1]+=tag[k];
    		tag[k]=0;
    	}
    	inline void modify(int k,int l,int r,int xl,int xr){
    		if(xl<=l&&r<=xr){
    			c[k]=0;
    			tag[k]++;
    			return;
    		}
    		pushdown(k,l,r);
    		int mid=(l+r)>>1;
    		if(xl<=mid)modify(k<<1,l,mid,xl,xr);
    		if(xr>=mid+1)modify(k<<1|1,mid+1,r,xl,xr);
    		c[k]=c[k<<1]+c[k<<1|1];
    	}
    	inline int query(){
    		pushdown(1,1,n);//亲测这一行不加也可以
    		return c[1];
    	}
    }T;
    
    int main(){
    	scanf("%d%d",&n,&m);
    	T.build(1,1,n);
    	for(int i=1;i<=m;i++){
    		int l,r;
    		scanf("%d%d",&l,&r);
    		T.modify(1,1,n,l,r);
    		printf("%d
    ",T.query());
    	}
    }
    

    我一直以为过了这题我就能写得出来扫描线了...... 加油

    (据说还有并查集的写法?)

  • 相关阅读:
    对于 redux 的一些理解-1.基础
    css 优化
    HTML 理解标签
    css 理解盒模型
    json2.js JSON解析程序
    DOM 核心
    居中
    Director.js
    jquery-2.0.3 源码分析 整体架构
    Zookeeper安装
  • 原文地址:https://www.cnblogs.com/Y15BeTa/p/11791458.html
Copyright © 2020-2023  润新知