nyoj63 小猴子下落 (二叉树)
2015-12-28 12:25
218 查看
题目63
题目信息
运行结果
本题排行
讨论区
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述
有一颗二叉树,最大深度为D,且所有叶子的深度都相同。所有结点从左到右从上到下的编号为1,2,3,·····,2的D次方减1。在结点1处放一个小猴子,它会往下跑。每个内结点上都有一个开关,初始全部关闭,当每次有小猴子跑到一个开关上时,它的状态都会改变,当到达一个内结点时,如果开关关闭,小猴子往左走,否则往右走,直到走到叶子结点。
一些小猴子从结点1处开始往下跑,最后一个小猴儿会跑到哪里呢?
输入输入二叉树叶子的深度D,和小猴子数目I,假设I不超过整棵树的叶子个数,D<=20.最终以 0 0 结尾
输出输出第I个小猴子所在的叶子编号。
样例输入
样例输出
来源[张洁烽]原创
上传者张洁烽
一个二叉树,因为D最大为20,2的20次方1048576,所以定义一个,这么大的数组。
把它想象为一个满二叉树。初始二叉树全部值为0,n个小猴子从根节点下落,如果节点的值为0
改变这个值并且向左子树移动,反之改变这个值并向右子树移动,同时深度d++.直到D等于d.
具体就看代码把。
题目信息
运行结果
本题排行
讨论区
小猴子下落
时间限制: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
来源[张洁烽]原创
上传者张洁烽
一个二叉树,因为D最大为20,2的20次方1048576,所以定义一个,这么大的数组。
把它想象为一个满二叉树。初始二叉树全部值为0,n个小猴子从根节点下落,如果节点的值为0
改变这个值并且向左子树移动,反之改变这个值并向右子树移动,同时深度d++.直到D等于d.
具体就看代码把。
#include <stdio.h> #include <string.h> #define N 1048576+10 int tree ; int D; int bfs(int root,int d) { while(d<D) { if(root<N){ if(tree[root]==0) { tree[root]=1; root=root*2; d++; } if(tree[root]==1) { tree[root]=0; root=root*2+1; d++; } } } return root; } int main() { int n; while(scanf("%d %d",&D,&n)!=EOF) { if(!D&&!n) break; memset(tree,0,sizeof(tree)); int end=1; while(n--) { end=bfs(1,1); } printf("%d\n",end); } return 0; }
相关文章推荐
- 他19岁创业至今2年 没花投资人一分钱
- centos7系统nginx下phalcon环境搭建
- 简单A股上证指数动态图gif
- SQL Server DBA面试知识点(一)--SQL Server的事务隔离级别详解
- Spring 开启Annotation <context:annotation-config> 和 <context:component-scan>诠释及区别
- LeetCode:4_Median of Two Sorted Arrays | 求两个排序数组的中位数 | Hard
- cocos js- android 平台 java与js互调 , ios平台 Objective-c与js互调
- weblogic下开发hibernate发生jar包冲突问题
- 数据库连接池Druid
- 【LEETCODE】223-Rectangle Area
- Quartz2D-绘线
- Bezier曲线
- context
- YII使用url组件美化管理的方法
- python 遍历文件夹和子目录抓出自己想用的文件类型
- 2015年12月28日课堂笔记与作业
- phpMyAdmin 手动输入数据库服务器IP
- ios-@property属性(特性)
- window.load和document.ready的区别
- 3D touch功能