###Pro:2015上海区域赛B题
题意:一颗编号为 1 2 3 2^k 2^k+1…的满二叉树,从root点初始num=0,开始向下遍历k层,加 或 减去编号,使得num等于N;
题解:注意题目条件,N <= 2^k <= 2^60,所以一个N,是可以被最左边一条边(1,4,8,,2 ^ k)表示,或者被次左(1,2,4,,2 ^ k + 1)表示;
若设x为+的数,那么
x-(2^k-x)=n;
x=(2^k+n)/2
=_=大概是这个理,分奇数,偶数讨论下
代码:
1 |
|
###Pro:2015上海区域赛B题
题意:一颗编号为 1 2 3 2^k 2^k+1…的满二叉树,从root点初始num=0,开始向下遍历k层,加 或 减去编号,使得num等于N;
题解:注意题目条件,N <= 2^k <= 2^60,所以一个N,是可以被最左边一条边(1,4,8,,2 ^ k)表示,或者被次左(1,2,4,,2 ^ k + 1)表示;
若设x为+的数,那么
x-(2^k-x)=n;
x=(2^k+n)/2
=_=大概是这个理,分奇数,偶数讨论下
代码:
1 |
|
近期评论