二叉树之小球下落

来源:互联网 发布:美图秀秀mac版 编辑:程序博客网 时间:2024/04/25 07:36

可以直接暴力模拟,不过不出意外会超时,所以找一下规律,这个规律很简单,自行思考

#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include<cctype>#include<string>#include<cmath>#include<queue>#include<stack>using namespace std;/*const int maxn=(1<<20)+5;int a[maxn];int main(){    cout<<maxn<<endl;    int d,i;    while(cin>>d)    {        cin>>i;        memset(a,0,sizeof(a));        int t;        while(i--)        {            t=1;            while(t<=(1<<(d-1))-1)            {                if(a[t])                {                   a[t]=0;                   t=2*t+1;                }                else                {                   a[t]=1;                   t=2*t;                }            }        }        cout<<t<<endl;    }*/int main(){    int d,i;    while(cin>>d)    {        cin>>i;        int k=1;        for(int j=0;j<d-1;j++)        if(i%2) {k=k*2;i=(i+1)/2;}        else {k=k*2+1;i/=2;}        cout<<k<<endl;    }    return 0;}


0 0