ZCMU1158: 松哥的二叉树
2018-02-23 11:25
302 查看
Description
有一棵满二叉树,最大深度为D,且所有叶子的深度都相同。所有结点从上到下从左到右编号为1,2,3,…,2^D-1。松哥在结点1处放下一个小球,它会往下落。每个结点都会有一个开关,初始全为关闭,当每次有小球落到一个开关上时,开关的状态都会改变(开变关,关变开)。当小球到达某个结点时,如果该结点上的开关关闭,则小球往左走,否则往右走,直到走到叶子结点。现在有n个小球依次从结点1开始往下落,松哥想要知道第n个小球落在哪个结点,你能告诉他嘛?Input
多组测试数据。每组测试数据包含两个整数D(D<=30),n(n<=2^D-1)。Output
对于每组测试数据输出一个整数,代表最后一个小球最终下落在哪个结点。Sample Input
4 14 24 3
Sample Output
8
12
10
球先到节点上 然后开关状态再改变 (不是所以的开关状态改变,只是当前到的开关状态改变)
奇数球往左 偶数球往右
#include<bits/stdc++.h>using namespace std;/*1-2-4>81-3-6>121-2-5>101-3-7>14*/int main(){int d,n;while(scanf("%d%d",&d,&n)!=EOF){int k=1,i;for(i=0;i<d-1;i++){//奇数个,向左子树移动,偶数个,向右字树if(n%2!=0){k=k*2;//左k=k*2n=(n+1)/2;}else{k=k*2+1;//右k=k*2+1n=n/2;}}printf("%d\n",k);}return 0;}
相关文章推荐
- ZCMU-1158-二叉树
- ZCMU-1140-松哥
- ZCMU-1162-松哥的素数
- ZCMU 1934: ly的二叉树
- ZCMU-1162-松哥的素数
- 树及二叉树基本概念【数据结构】
- 二叉树中、后序求先序
- 二叉树的建立与遍历
- 二叉树的常用操作
- 静态链表表示二叉树
- 【LeetCode 104_二叉树_遍历】Maximum Depth of Binary Tree
- JAVA二叉树,给出先序遍历和中序遍历,构造出新的二叉树
- 每天一道算法题——二叉树中和为某一值的路径
- 剑指offer--面试题19:二叉树的镜像
- 面试题25:二叉树中和为某一值的路径
- 笔试面试之二叉树的镜像
- 微软面试题:反转二叉树
- (剑指Offer)面试题6:重建二叉树
- 由二叉树的遍历序列恢复二叉树
- 《剑指Offer》之“二叉树的镜像”