679 Dropping Balls

叶子深度D为3,小球个数I为4。图解如下。


 

                                初始状态

                    第一个小球下落的状态(序号4

 

                    第二个小球下落的状态(序号6

                    第三个小球下落的状态(序号5)

                    第四个小球下落的状态(序号7)

 


 

#include<cstdio>
using namespace std;
int main()
{
	int D, I,n;
	while (scanf("%d", &n)==1&&n!=-1)
	{
		while (n--)
		{
			while (scanf("%d%d", &D, &I) == 2)
			{
				int k = 1;
				for (int i = 0; i < D - 1; i++)
					if (I % 2)
					{
						k = k * 2;
						I = (I + 1) / 2;
					}
					else
					{
						k = k * 2 + 1;
						I = I / 2;
					}
				printf("%d\n", k);
			}
		}
	}
	return 0;
}

 

posted @ 2015-06-10 11:26  夏弥  阅读(194)  评论(0编辑  收藏  举报