莫名其妙RE?来看看是不是这个问题:
ll query(ll s,ll l,ll r,ll k)
{
if(ans[s][0]==0)return 0;
if(l==r)
{
return min(ans[s][0],(ll)(k/l));
}
ll mid=(l+r)>>1;
if(k>=ans[son[s][0]][1])return ans[son[s][0]][0]+(son[s][1]?query(son[s][1],mid+1,r,k-ans[son[s][0]][1]):0);
else return (son[s][0]?query(son[s][0],l,mid,k):0);
}
这样写query就会re72分,但将第一行改成
if(ans[s][0]==0||k<l)return 0;
就AC了