[模板]主席树查前趋后继
1 int getpre(int x,int las,int l,int r,int k) 2 { 3 if(siz[x]-siz[las]==0)return -1; 4 if(l==r)return l; 5 int mid=(l+r)>>1,res=-1; 6 if(k>mid)res=getpre(rc[x],rc[las],mid+1,r,k); 7 if(~res)return res; 8 return getpre(lc[x],lc[las],l,mid,k); 9 } 10 int getsuf(int x,int las,int l,int r,int k) 11 { 12 if(siz[x]-siz[las]==0)return -1; 13 if(l==r)return l; 14 int mid=(l+r)>>1,res=-1; 15 if(k<=mid)res=getsuf(lc[x],lc[las],l,mid,k); 16 if(~res)return res; 17 return getsuf(rc[x],rc[las],mid+1,r,k); 18 }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步