Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
28649 liuyile 【BJ】T2 C++ 编译错误 0 0 MS 0 KB 2812 2024-04-28 12:06:09

Tests(0/0):


#include <bits/stdc++.h> using namespace std; #define int long long #define pii pair<int,int> #define lc(x) (x<<1) #define rc(x) (x<<1|1) #define p1(x) x.first #define p2(x) x.second int n; const int MXN=1e6+30; int a[MXN],b[MXN],c[MXN],d[MXN]; set<int>SC,SD; int s[MXN]; *int tmp; inline int rkb(int x){ return lower_bound(s+1,tmp,x)-s; } const int INF=1e9+1; struct node{ int mnw,mnx,mnc,mnd,mncx,mndx,tgc,tgd,mxc,mxd; }T[MXN<<2]; inline void upd(int x){ T[x].mnw=min(T[lc(x)].mnw,T[rc(x)].mnw); T[x].mnx=min(T[lc(x)].mnx,T[rc(x)].mnx); T[x].mnc=min(T[lc(x)].mnc,T[rc(x)].mnc); T[x].mnd=min(T[lc(x)].mnd,T[rc(x)].mnd); T[x].mncx=min(T[lc(x)].mncx,T[rc(x)].mncx); T[x].mndx=min(T[lc(x)].mndx,T[rc(x)].mndx); T[x].mxc=max(T[lc(x)].mxc,T[rc(x)].mxc); T[x].mxd=max(T[lc(x)].mxd,T[rc(x)].mxd); } inline void uc(int x,int c){ T[x].tgc=c; T[x].mnw=T[x].mnxd+c; T[x].mncx=T[x].mnx+c; T[x].mnc=c; T[x].mxc=c; } inline void ud(int x,int d){ T[x].tgd=d; T[x].mnw=T[x].mnxc+d; T[x].mndx=T[x].mnx+d; T[x].mnd=d; T[x].mxd=d; } inline void pd(int x){ if(T[x].tgc){ uc(lc(x),T[x].tgc); uc(rc(x),T[x].tgc); T[x].tgc=0; } if(T[x].tgd){ ud(lc(x),T[x].tgd); ud(rc(x),T[x].tgd); T[x].tgd=0; } } inline void bd(int x,int l,int r){ if(l==r){ T[x]={s[l],s[l],0,0,s[l],s[l],0,0,0,0}; return ; } int mid=l+r>>1; bd(lc(x),l,mid); bd(rc(x),mid+1,r); upd(x); } stack<pair<int,node>>R; inline void chkmodc(int x,int l,int r,int L,int R,int c){ if(L>R)return ; if(c<=T[x].mnc)return ; if(L<=l&&r<=R&&c>=T[x].mxc){ uc(x,c); return ; } R.push_back({lc(x),T[lc(x)]}); R.push_back({rc(x),T[rc(x)]}); pd(x); int mid=l+r>>1; if(L<=mid)chkmodc(lc(x),l,mid,L,R,c); if(R>mid)chkmodc(rc(x),mid+1,r,L,R,c); upd(x); } inline void chkmxc(int r,int c){chkmmodc(1,1,n,1,r,c);} inline void chkmodd(int x,int l,int r,int L,int R,int d){ if(L>R)return ; if(d<=T[x].mnd)return ; if(L<=l&&r<=R&&d>=T[x].mxd){ ud(x,d); return ; } R.push_back({lc(x),T[lc(x)]}); R.push_back({rc(x),T[rc(x)]}); pd(x); int mid=l+r>>1; if(L<=mid)chkmodd(lc(x),l,mid,L,R,d); if(R>mid)chkmodd(rc(x),mid+1,r,L,R,d); upd(x); } inline void chkmxd(int r,int d){chkmmodd(1,1,n,1,r,d);} inline void clr(){ R.clear(); R.push_back({1,T[1]}); } inline void rvk(){ while(!R.empty()){ T[p1(R.top())]=p2(R.top()); R.pop(); } } inline void chkmx(int x){ clr(); chkmxc(rkb(b[x])-1,c[x]); chkmxd(rkb(b[x])-1,d[x]); } signed main() { // freopen(".in","r",stdin); // freopen(".out","w",stdout); ios::sync_with_stdio(0); int t; cin>>t; while(t--){ cin>>n; for(int i=1;i<=n;i++)cin>>a[i]>>b[i]>>c[i]>>d[i]; SC.clear(),SD.clear(); } return 0; } /* */


测评信息: