zoukankan      html  css  js  c++  java
  • 【HAOI】贴海报

    MZOJ贴海报

    .......我真的没带脑子在打

    忘了pup

    然后数字个数应该为m=unique(c+1,c+cnt+1)-c;
    然而我是unique(c+1,c+cnt+1)-c;m=lower_bound(c,c+cnt+1,inf)-c; ..........

    数组大小也开小了.....

    心好累.........

    非要离散化版
    #include
    using namespace std;
    #define ll long long
    #define lson (o<<1)
    #define rson (o<<1|1)
    const int N=1000+5,M=1000000+5,inf=0x3f3f3f3f;
    int n,m,a[N],b[N],c[N<<2],cnt,ans;
    bool yes,tree[N<<4];
    template void rd(t &x){
        x=0;int w=0;char ch=0;
        while(!isdigit(ch)) w|=ch=='-',ch=getchar();
        while(isdigit(ch)) x=(x<<1)+(x<<3)+(ch^48),ch=getchar();
        x=w?-x:x;
    }
    void pup(int o){tree[o]=tree[lson]&&tree[rson];}
    void mdf(int o,int l,int r,int x,int y){
    	if(l > y||r < x) return;
    	if(tree[o]) return;
    	if(x < = l&&r < = y){yes=1,tree[o]=1;return;}
    	int mid=l+r>>1;
    	mdf(lson,l,mid,x,y),mdf(rson,mid+1,r,x,y);
    	pup(o);//!!!!!!!!!!!!!!!!!!!!
    }
    int main(){
    	freopen("in.txt","r",stdin);
    //	freopen("numbers.out","w",stdout);
    	int T;rd(T);
    	while(T--){
    		ans=cnt=0; 
    		memset(tree,0,sizeof(tree));
    		rd(n);
    		c[++cnt]=inf,c[++cnt]=0;
    		for(int i=1;i < =n;++i)
    		rd(a[i]),rd(b[i]),c[++cnt]=a[i],c[++cnt]=a[i]+1,c[++cnt]=b[i],c[++cnt]=b[i]+1;
    		sort(c+1,c+cnt+1);m=unique(c+1,c+cnt+1)-c;
    	//	m=lower_bound(c,c+cnt+1,inf)-c;
    		for(int i=n,x,y;i;--i){
    			x=lower_bound(c+1,c+m+1,a[i])-c;
    			y=lower_bound(c+1,c+m+1,b[i])-c;
    			yes=0;
    			mdf(1,1,m,x,y);
    			if(yes) ++ans;
    		}
    		printf("%d
    ",ans);
    	} 
        return 0;
    }
        
  • 相关阅读:
    java--面向抽象编程
    java--面向接口编程
    一个网页的测试用例
    浏览器Notwork XHR被隐藏了
    在element-ui label中设置空格
    数组对象排序
    js动态替换和插入字符串
    vue-quill-editor回显时移除焦点
    vue中监听页面是否有回车键按下
    vue-quill-edito 字体倾斜加粗无效
  • 原文地址:https://www.cnblogs.com/lxyyyy/p/11443661.html
Copyright © 2011-2022 走看看