//小根堆
for(int i=1;i<=n;i++){
int k=top;
while(k&&a[stk[k]]>a[i])k--;
if(k)rs[stk[k]]=i;
if(k<top)ls[i]=stk[k+1];
stk[++k]=i;top=k;
}
//小根堆
for(int i=1;i<=n;i++){
int k=top;
while(k&&a[stk[k]]>a[i])k--;
if(k)rs[stk[k]]=i;
if(k<top)ls[i]=stk[k+1];
stk[++k]=i;top=k;
}
然后用这个可以很轻松的表示出B数组元素需要满足的关系,即根是子树中最大的。。满足...
给出一些结点每个节点有两个关键字要求构造加到最大值节点的右儿子,如
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M