• 个人简介

    洛谷号

    满级模拟

    经典永流传

    新时代神贴

    image

    image

    image

    image

    image

    image](/file/8595/8e-7ArsBTxmzsrausdRrW.png)

    STL大法好(

    map<queue<priority_queue<vector<set<list<multiset<multimap<int,stack<int>>>>>>>>,deque<set<pair<bitset<64>,unordered_map<int,unordered_set<int>>>>::iterator>>mp;
    

    192.168.21.97

    739559114

    临时代码区

    #include<bits/stdc++.h>
    #define pii pair<int,int>
    #define endl '\n'
    using namespace std;
    const int N=1e5+5;
    int n,m,a[N],op[N],l[N],r[N],q,d[N<<2],lzt[N<<2];
    void pushup(int p){
    	d[p]=d[p<<1]|d[p<<1|1];
    }
    void build(int p,int s,int t,int x){
    	if(s==t){ 
    		d[p]=a[s]>=x;
    		return;
    	}
    	int mid=(s+t)>>1;
    	build(p<<1,s,mid,x);
    	build(p<<1|1,mid+1,t,x);
    	pushup(p);
    }
    void mktag(int p,int s,int t,int x){
    	if(x==1)d[p]=t-s+1;
    	else d[p]=0;
    	lzt[p]=x;
    }
    void pushdown(int p){
    	
    }
    void update(int p,int s,int t,int l,int r,int x){
    	if(l>r||l>t||r<s)return;
    	if(l<=s&&t<=r){
    		mktag(p,s,t,x);
    		return;
    	}
    	int mid=(s+t)>>1;
    	pushdown(p);
    	update(p<<1,s,mid,l,r,x);
    	update(p<<1|1,mid+1,t,l,r,x);
    }
    int query(int p,int s,int t,int l,int r){
    	if(l>t||r<s)return;
    	if(l<=s&&t<=r)return d[p];
    	int mid=(s+t)>>1;
    	return query(p<<1,s,mid,l,r)+query(p<<1|1,mid+1,t,l,r);
    }
    int calc(int x){
    	build(1,1,n,x);
    	for(int i=1;i<=m;i++){
    		int cnt1=query1(1,1,n,l[i],r[i]);
    		if(op[i]==0){
    			update(1,1,n,l[i],r[i]-cnt1,0);
    			update(1,1,n,r[i]-cnt1+1,r[i],1);
    		}else{
    			update(1,1,n,l[i],l[i]+cnt1-1,1);
    			update(1,1,n,l[i]+cnt1,r[i],0); 
    		}
    	}
    	return query(1,1,n,q);
    }
    int main(){
    	scanf("%d%d",&n,&m);
    	for(int i=1;i<=n;i++)scanf("%d",&a[i]);
    	for(int i=1;i<=m;i++){
    		scanf("%d%d%d",op[i],l[i],r[i]);
    	}
    	scanf("%d",&q);
    	int lb=1,ub=n+1;
    	while(ub-lb>1){
    		int mid=(lb+ub)>>1;
    		if(calc(mid))l=mid;
    		else r=mid;
    	}
    	return 0;
    }