• 南阳理工 题目63 小猴子下落


    小猴子下落

    时间限制:3000 ms | 内存限制:65535 KB
    难度:3
    描述
    有一颗二叉树,最大深度为D,且所有叶子的深度都相同。所有结点从左到右从上到下的编号为1,2,3,·····,2的D次方减1。在结点1处放一个小猴子,它会往下跑。每个内结点上都有一个开关,初始全部关闭,当每次有小猴子跑到一个开关上时,它的状态都会改变,当到达一个内结点时,如果开关关闭,小猴子往左走,否则往右走,直到走到叶子结点。

    一些小猴子从结点1处开始往下跑,最后一个小猴儿会跑到哪里呢?

    输入
    输入二叉树叶子的深度D,和小猴子数目I,假设I不超过整棵树的叶子个数,D<=20.最终以 0 0 结尾
    输出
    输出第I个小猴子所在的叶子编号。
    样例输入
    4 2
    3 4
    0 0
    样例输出
    12
    7
    完全二叉树,右边为2*k,左边为2*k+1。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    int text[1<<20];
    int main()
    {
        int n,m;
        while(scanf("%d%d",&n,&m)!=EOF)
        {
            if(n==0&&m==0)
                break;
            int a=(1<<n)-1;
            int k;
            memset(text,0,sizeof(text));
            for(int i=0;i<m;i++)
            {
                k=1;
                while(1)
                {
                    text[k]=!text[k];
                    if(text[k]==0)
                        k=k*2+1;
                    else
                        k=k*2;
                    if(k>a)
                        break;
                }
            }
            printf("%d
    ",k/2);
        }
        return 0;
    }
    
  • 相关阅读:
    将一个float型转化为内存存储格式的步骤
    判断是否是中文、英文字符串
    打开文件对话框
    线性表之四,受限的线性表,队列
    线性表之三,受限的线性表,栈
    数据结构
    List
    SamplesHashtable
    Exception
    maven指定本地仓库
  • 原文地址:https://www.cnblogs.com/nanfenggu/p/7900105.html
Copyright © 2020-2023  润新知