复杂度
O
(
n
)
O(n)
O(n)
原理在这
对于节点(k(序号),w(权重)):k 符合二叉搜索树性质,w符合堆性质
例题在这
int n,ind=0;
int sta[maxn],lson[maxn],rson[maxn],w[maxn];
void dkertree(){
for(int i=1;i<=n;++i){
int tmp=ind;
while(ind&&w[sta[tmp]]>w[i]){
--tmp;
}
if(tmp) rson[sta[tmp]]=i;
if(tmp<ind) lson[i]=sta[tmp+1];
sta[++tmp]=i;
ind=tmp;
}
}