树转专题

【树转数组】poj1195

/*二维的树状数组:更新某个元素时:NO.1:c[n1],c[n2],c[n3],....,c[nm];其中n1 = i,n(i+1) = ni+lowbit(ni);nm+lowbit(nm)的值应该大于元素个数N。NO.2:sum(k)=c[n1]+c[n2]+...+c[nm];其中nm=k,n(i-1)=ni-lowbit(ni);n1-lowbit(n1)的值应该小于0

剑指offer-70-36 二叉搜索树转双向链表

https://www.nowcoder.com/practice/947f6eb80d944a84850b0538bf0ec3a5?tpId=13&tqId=11179&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking 想明白过程就很简单,记录上一次访问的点。 /*struct

hdu-1011- Starship Troopers-自由树转二叉树+树形DP

题目很水,但是有很多易错点。。。 注意: 1,题目输入的时候是自由树,无向边。 2,如果某个点的bugs是0,也必须有至少一个士兵经过此点。 做法:: 按照题意,把自由树转为二叉树。 然后树形dp dp[x][y]:在二叉树中的x节点为根的树中,使用了y个士兵获得的最大值。 dp[x][y]=dp[node[x].l][k]+nval[x]+dp[node[x].r][y-k];