noip2017提高组复赛解题报告_第1页
noip2017提高组复赛解题报告_第2页
noip2017提高组复赛解题报告_第3页
noip2017提高组复赛解题报告_第4页
noip2017提高组复赛解题报告_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

到最后一列中。还有一点,如果(n,m)处有询问,说明那个询问与当前询问是重合的,所以记录一个类似于pre的东西,将那个询问的pre指向当前询问,并将那个询问删除。输出答案的时候直接令该询问的答案等于其pre的答案即可。#include#include#includeusingnamespacestd;constintmaxn=300010;typedeflonglongll;structnode{intch[2],siz,val,org,tag;}s[maxnintn,m,q,tot;intrx,ry[maxn];intbel[maxn],x[maxn],y[maxn];llans[maxn];inlineintrd(){intret=0;chargc=getchar();while(gc'9')gc=getchar();while(gc>='0'&&gcreturnret;}inlinevoidpushdown(intx){if(s[x].tag){if(s[x].ch[0])s[s[x].ch[0]].val+=s[x].tag,s[s[x].ch[0]].tag+=s[x].tag;if(s[x].ch[1])s[s[x].ch[1]].val+=s[x].tag,s[s[x].ch[1]].tag+=s[x].tag;s[x].tag=0;}}inlinevoidpushup(intx){s[x].siz=s[s[x].ch[0]].siz+s[s[x].ch[1]].siz+1;}inlinevoidrotate(int&x,intd){inty=s[x].ch[d];pushdown(x),pushdown(y);s[x].ch[d]=s[y].ch[d八1],s[y].ch[d八1]=x;pushup(x),pushup(y);x=y;}inlinevoidmaintain(int&x,intd){if(s[s[s[x].ch[d]].ch[d]].siz>s[s冈.ch[d八1]].siz)rotate(x,d);elseif(s[s[s[x].ch[d]].ch[d八1]].siz>s[s冈.ch[d八1]].siz)rotate(s[x].ch[d],d八1),rotate(x,d);elsereturn;maintain(s冈.ch[d],d),maintain(s[x].ch[d八1],d八1);maintain(x,d),maintain(x,d八1);}voidinsert(int&x,inty,intz){if(!x){x=++tot,s[x].siz=1,s[x].ch[0]=s[x].ch[1]=s[x].tag=0,s[x].val=y,s[x].org=z;return;}pushdown(x);intd=(y>s[x].val);insert(s[x].ch[d],y,z),pushup(x);maintain(x,d);}voiddel(int&x,inty){s[x].siz--,pushdown(x);if(s[y].val>s[x].val)del(s[x].ch[1],y);elseif(s[y].valelse{if(!s[x].ch[0]||!s[x].ch[1]){x=s[x].ch[0]”冈.ch[1];return;}intu=s[x].ch[1];pushdown(u);while(s[u].ch[0])u=s[u].ch[0],pushdown(u);s[x].org=s[u].org,s[x].val=s[u].val;del(s[x].ch[1],u);}}voidupdata(intx,inty){if(!x)return;pushdown(x);if(s[x].val>=y){s[x].val++;if(s[x].ch[1])s[s[x].ch[1]].val++,s[s[x].ch[1]].tag++;updata(s[x].ch[0],y);}elseupdata(s[x].ch[1],y);}inlineintfindmax(intx){pushdown(x);while(s[x].ch[1])x=s[x].ch[1],pushdown(x);returnx;}inlinellpoint(inta,intb){returnll(a-1)*m+b;}voiddfs(intx,intt){if(!x)return;pushdown(x);if(!t)ans[s[x].org]=point(s[x].val,m);elseans[s[x].org]=point(t,s[x].val);dfs(s[x].ch[0],t),dfs(s[x].ch[1],t);}intfind(intx,inty){if(!x)return0;pushdown(x);if(y>s[x].val)returnfind(s[x].ch[1],y);if(yreturnx;}intmain(){n=rd(),m=rd(),q=rd();inti;for(i=1;i{bel[i]=i;x[i]=rd(),y[i]=rd();}for(i=q;i>=1;i--){intt=findmax(rx);if(s[t].val==n){bel[s[t].org]=i,del(rx,t);}updata(ry[x[i]],y[i]);t=findmax(ry[x[i]]);{del(ry[x[i]],t),insert(rx,x[i],s[t].org);elseinsert(rx,x[i],i);}dfs(rx,0);for(i=1;ire

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论