小猴子下落

时间限制: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
来源
[张洁烽]原创
上传者
张洁烽

思路:解法上和3n+1问题类似

分奇偶去讨论情况

奇数 左走 res*=2;m=(m+1)/2;

偶数 右走 res=res*2+1;m=m/2;

#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<string.h>
#include<queue>
using namespace std;
int main()
{int n,m;while(~scanf("%d%d",&n,&m),(n+m)){int res=1;for(int i=0;i<n-1;i++){if(m%2){res=res*2;m=(m+1)/2;}else{res=res*2+1;m/=2;}}printf("%d\n",res);}
}

小猴子下落nyoj63(一道可以直接写的好题)相关推荐

  1. NYOJ 63 小猴子下落

    小猴子下落 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 有一颗二叉树,最大深度为D,且所有叶子的深度都相同.所有结点从左到右从上到下的编号为1,2,3,·····,2的D ...

  2. 一道面试题:写出SQL语句实现下述功能

    一道面试题:写出SQL语句实现下述功能 题目: 根据表结构写出SQL语句实现下述功能 解析 题目一: 模糊查询(难度:★☆☆☆) 题目二: 聚合查询(难度:★★☆☆) 题目三: 多层嵌套子查询(难度: ...

  3. 小猴子下落问题(二叉树)

    小猴子下落(二叉树基础题) 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 有一颗二叉树,最大深度为D,且所有叶子的深度都相同.所有结点从左到右从上到下的编号为1,2,3,· ...

  4. python 题库自动答题,自动匹配题库_如何用python写一个从题库自动匹配的答题脚本_淘题吧...

    A. web数据库题目:根据用户输入的用户名和密码于数据库中的记录是否匹配制作一个用户登录模块 http://blog.csdn.net/love_leve/article/details/43226 ...

  5. 某赛一道misc_gif隐写_rar密码暴力破解_AAencode

    题目:一张奔跑的卡通小人(gif图片) 一.先用010editor打开分析图片,对比文件头和文件尾,发现文件尾后跟随着rar文件特征. rar文件头应该为:52617221 二.把rar文件从gif中 ...

  6. 一道解决的非常漂亮的算法题

    这是多年以前做的一道题目,原题来自软件报或者电脑报 ,我记不清了.解决这个题目有一个关键的步骤,就是要求一个整数在一个整数三角阵中的坐标.这篇blog就是讨论这个求坐标的问题,不是讨论那个报纸上的题目 ...

  7. 一道关于老鼠繁衍的算法题

    题目源头 这道题目是前些日子,面试阿里的时候,给的一道在线测评算法题 题目描述 大海中央的一座孤岛,上面本来没有老鼠.有一艘路过的船只在附近沉没了,船上 x 对 新出生的老鼠,顺着船只残骸漂流到小岛上 ...

  8. 《月赛没写出来的题》

    A 众所周知,wy学姐心灵手巧,她最近在学习原画,立志往国风和赛博朋克风格发展. 绘画的工具是很重要哒! 于是思量再三+长期吃土后,她买了一支biulingbiuling~闪的魔法棒画笔,由于刚刚接触 ...

  9. 青蛙跳台阶:我如何得知它是一道斐波那契数列题?——应用题破题“三板斧”

    本文以C语言实现. 目录 前言 一.斐波那契阿数列基础知识 二.引例:青蛙跳台阶 三.破题分析:举例归纳 1. 三板斧的使用 举例 模拟(必要时画图) 找规律 2. 代码展示 四.拓展用例:矩形覆盖问 ...

  10. 一道让你拍案叫绝的算法题

    这是一道看完答案会觉得很简单,但做之前很难想到答案的题目!!! 不信? Let us go ! 题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次 ...

最新文章

  1. 百度重置页面自动跳转脚本
  2. SQLSERVER拆分字符串的函数(表值函数)
  3. OpenCV hdr成像技术的实例(附完整代码)
  4. HTML-通知公告Tips
  5. linux+arch系统下载,Linux
  6. 《Go 语言程序设计》读书笔记(四)接口
  7. 关于tomcat的思考
  8. 分享一款在线less转css的神器
  9. 快播创始人王欣成立人工智能公司
  10. 幕布(思维导图)官方版 v1.1.15
  11. uniapp——头条小程序picker变黑色
  12. StarUML license key
  13. 在单端输入应用中连接差分放大器
  14. ijkplayer播放视频
  15. 广告联盟识别作弊方法
  16. 高等数学 —— 无穷小与无穷大
  17. Mac OS平台的Pr cc怎样配置首选项设置(二)?
  18. 重拾JDBC(七)JDBC的元数据
  19. linux 双线接入配置(电信联通双线)+三线接入配置
  20. 前端小项目 QuizApp 答题卡片

热门文章

  1. SQL SERVER获取数据库文件信息
  2. 如何在 Windows 显示扩展名?
  3. Spring AOP 讲解(Pointcut、Before、Around、AfterReturning、After)
  4. ARM开发6.3.2 基础实训( 2 ) 单个数码 LED 的显示输出系统设计( 2 )--LPC21XX
  5. session的简单理解和使用
  6. mybatis中xml文件的#{param1}和#{属性名},比如#{id}的使用环境以及使用的时机情况
  7. python or 和and的优先级_python中not、and和or的优先级与详细用法介绍
  8. mysql编译安装原理_Mysql源码编译安装主从复制
  9. window下c语言c s通信,c++ Windows Socket实现最简单的C/S网络通信(TCP)
  10. Asp.Net客户端触发服务器端事件及_dopostback