-
个人简介
经典永流传
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; }