您的位置:首页 > 理论基础 > 数据结构算法

NYOJ63——小猴子下落

2013-04-13 20:45 218 查看
题目链接:

这里其实考察的是二叉树。如果根节点从1开始,那么第i个节点的左右孩子就分别是2*i,2*i+1;如果访问到某个节点,则该节点的状态改变。状态只在开,关间转换。

AC代码如下:

#include<stdio.h>
#include<string.h>
#include<math.h>

bool flag[1048579];

int main()
{
int D,I;
int lim;
int i;
int temp;
while(scanf("%d %d",&D, &I) != EOF)
{
memset(flag, 0, sizeof(flag));
if(!D && !I)
break;

lim = (int)pow(2.0,D);
i = 0;
while(I--)
{
i = 1;
while(true)
{
flag[i] = !flag[i];
if(flag[i])
temp = i + i;
else
temp = i + i + 1;
if(temp >= lim)
break;
i = temp;
}
}
printf("%d\n",i);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据结构