nyoj 63 小猴子下落
题目链接:
http://acm.nyist.net/JudgeOnline/problem.php?pid=63
思路:
不需要用指针创建二叉树,也不需要用数组来模拟二叉树,空间上更浪费
这里只需要知道当最后一只猴子走的时候,开关是什么状态即可
规则:奇数向左走,偶数向右走
代码:
#include <iostream>
#include <stdio.h>
using namespace std;
typedef long long ll;
int main() {
int d,num,id;
while(~scanf("%d %d",&d,&num)&&d&&num) {
d--;
id=1;
while(d--) {
if(num&1) id=id<<1,num=(num>>1)+1;
else id=id<<1|1,num=num>>1;
}
printf("%d\n",id);
}
return 0;
}