10分WA求助

P3801 红色的幻想乡

# AC code: ``` #include <iostream> #include <cstdio> #include <algorithm> #include <cmath> #include <cstring> #include <cctype> using namespace std; inline int read() { int x=0,f=1;char ch=getchar(); while (!isdigit(ch)){if (ch=='-') f=-1;ch=getchar();} while (isdigit(ch)){x=x*10+ch-48;ch=getchar();} return x*f; } int n,m,q; struct segment_tree { struct treenode { int l,r; long long val; }t[100050<<2]; inline void build(int id,int l,int r) { t[id].l=l; t[id].r=r; if (l==r) return; int mid=(l+r)>>1; build(id<<1,l,mid); build(id<<1|1,mid+1,r); } inline void update(int id,int pos) { if (t[id].l==t[id].r) { t[id].val^=1; return; } int mid=(t[id].l+t[id].r)>>1; if (pos<=mid) update(id<<1,pos); else update(id<<1|1,pos); t[id].val=t[id<<1].val+t[id<<1|1].val; } inline long long query(int id,int l,int r) { if (l==t[id].l && r==t[id].r) return t[id].val; int mid=(t[id].l+t[id].r)>>1; if (r<=mid) return query(id<<1,l,r); else if (l>mid) return query(id<<1|1,l,r); else return query(id<<1,l,mid)+query(id<<1|1,mid+1,r); } }t1,t2; int main() { n=read(),m=read(),q=read(); t1.build(1,1,n); t2.build(1,1,m); while (q--) { int c=read(),x=read(),y=read(); if (c==1) { t1.update(1,x); t2.update(1,y); } else { #define x1 Syameimaru_Aya #define y1 Himekaidou_Hatate int x1=read(),y1=read(); long long res1=t1.query(1,x,x1); long long res2=t2.query(1,y,y1); printf("%lld\n",res1*(y1-y+1-res2)+res2*(x1-x+1-res1)); } } return 0; } ```
by zvzvzgdfdw @ 2023-08-15 15:57:30


@[XSC2021_HZY](/user/324226)
by zvzvzgdfdw @ 2023-08-15 15:58:10


这不是cz的题解吗(...
by X2H_tato @ 2023-08-15 15:59:59


6,现在调题都直接粘别人题解了
by chancelong @ 2023-08-15 16:55:56


|