萌新求助QAQ

P3285 [SCOI2014] 方伯伯的OJ

主函数 ```cpp int main(){ cin>>n>>m; int minn=1,maxx=n; memset(tree,0,sizeof(tree)); change(R,1,n,1,n); int last=0; for(int i=1;i<=m;i++){ int a,b,c; scanf("%d",&a); if (a==1){ scanf("%d%d",&b,&c); b-=last;c-=last; if (!ma.count(b))ma[b]=b; int left,right; search(R,ma[b],left,right); ma[c]=ma[b]; del(R,left); if (ma[b]>left)change(R,left,ma[b]-1,left,ma[b]-left); if (ma[b]<right)change(R,ma[b]+1,right,ma[b]+1,right-ma[b]); change(R,ma[b],ma[b],c,1); last=rank(R,ma[b]); printf("%d\n",last); } if (a==2){ scanf("%d",&b); b-=last; if (!ma.count(b))ma[b]=b; last=rank(R,ma[b]); int left,right; search(R,ma[b],left,right); del(R,left); if (ma[b]>left)change(R,left,ma[b]-1,left,ma[b]-left); if (ma[b]<right)change(R,ma[b]+1,right,ma[b]+1,right-ma[b]); ma[b]=--minn; change(R,ma[b],ma[b],c,1); printf("%d\n",last); } if (a==3){ scanf("%d",&b); b-=last; if (!ma.count(b))ma[b]=b; last=rank(R,ma[b]); int left,right; search(R,ma[b],left,right); del(R,left); if (ma[b]>left)change(R,left,ma[b]-1,left,ma[b]-left); if (ma[b]<right)change(R,ma[b]+1,right,ma[b]+1,right-ma[b]); ma[b]=++maxx; change(R,ma[b],ma[b],c,1); printf("%d\n",last); } if (a==4){ scanf("%d",&b); b-=last; if (!ma.count(b))ma[b]=b; last=find(R,b); printf("%d\n",last); } } return 0; } ```
by 吾王美如画 @ 2019-02-16 23:17:34


那个好心的大佬帮我康康吧QAQ
by 吾王美如画 @ 2019-02-16 23:18:19


切黑题 Orz
by VenusM1nT @ 2019-02-17 08:16:39


@[Venus](/space/show?uid=23243) orz
by 吾王美如画 @ 2019-02-17 09:52:15


我看第九个测试点还蛮大的鸭,为毛就这个过了
by 吾王美如画 @ 2019-02-17 10:07:46


好吧,我又犯沙雕错误了
by 吾王美如画 @ 2019-02-17 10:55:24


|