首页 > 其他 > 详细

小球下落(二叉树)

时间:2014-04-15 02:23:33      阅读:562      评论:0      收藏:0      [点我收藏+]

样例输入:

4   2

3   4

10   1

2   2

8   128

16   12345

样例输出:

12

7

512

3

255

36358




#include<stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <queue>
using namespace std;
const int MAXD = 20;
int s[1<<MAXD] ;
int main()
{
   int D,I;
   while( scanf( "%d%d" , &D , &I ) ==2 )
   {
      memset( s,0,sizeof(s) );
      int k , n = ( 1<<D ) - 1;
      for( int i=0; i<I ; i++ )
      {
         k = 1;
         for( ; ; )
         {
            s[k] = !s[k];
            k = s[k] ? k*2 : k*2+1;
            if( k>n ) break;      
         }    
      }      
      printf( "%d\n" , k/2 );
   }
   system("pause");
return 0;
}


本文出自 “stayfoolish” 博客,请务必保留此出处http://8393359.blog.51cto.com/8383359/1395558

小球下落(二叉树),布布扣,bubuko.com

小球下落(二叉树)

原文:http://8393359.blog.51cto.com/8383359/1395558

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!