CF 287 Div 2 C

recursive

这道题目是 递归算法,但是对于左子树的 递归还是没理解,先放在这里

核心函数
ULL solve(int h, ULL n)
{
if(!h) return 0;//n=1
ULL LeftLeafNum=(1ULL<<(h-1));
if(n<=LeftLeafNum) return 1+solve(h-1, LeftLeafNum-n+1);
else return 2*LeftLeafNum+solve(h-1, n-LeftLeafNum);
}

右子树的可以理解,就是左子树,如果一开始要向右走的没理解

Posted by richard爱闹 - 1月 27 2015
如需转载,请注明: 本文来自 Richard