UVA-679-DROPING BALL

原创 2016年06月01日 08:50:08

UVA-679

A number of K balls are dropped one by one from the root of a fully binary tree structure FBT. Each time the ball being dropped rst visits a non-terminal node. It then keeps moving down, either follows the path of the left subtree, or follows the path of the right subtree, until it stops at one of the leaf nodes of FBT. To determine a ball’s moving direction a ag is set up in every non-terminal node with two values, either false or true. Initially, all of the ags are false. When visiting a non-terminal node if the ag’s current value at this node is false, then the ball will rst switch this ag’s value, i.e., from the false to the true, and then follow the left subtree of this node to keep moving down. Otherwise, it will also switch this ag’s value, i.e., from the true to the false, but will follow the right subtree of this node to keep moving down. Furthermore, all nodes of FBT are sequentially numbered, starting at 1 with nodes on depth 1, and then those on depth 2, and so on. Nodes on any depth are numbered from left to right.
For example, Fig. 1 represents a fully binary tree of maximum depth 4 with the node numbers 1, 2, 3, …, 15. Since all of the ags are initially set to be false, the rst ball being dropped will switch ag’s values at node 1, node 2, and node 4 before it nally stops at position 8. The second ball being dropped will switch ag’s values at node 1, node 3, and node 6, and stop at position 12. Obviously, the third ball being dropped will switch ag’s values at node 1, node 2, and node 5 before it stops at position 10.
Now consider a number of test cases where two values will be given for each test. The rst value is D, the maximum depth of FBT, and the second one is I, the I-th ball being dropped. You may assume the value of I will not exceed the total number of leaf nodes for the given FBT.
这里写图片描述

Please write a program to determine the stop position P for each test case. For each test cases the range of two parameters D and I is as below:
Input
Contains l + 2 lines.
2≤D≤20, and1≤I≤524288.

my code :


//UVA 679 Droping balls
#include "iostream"
#include "cstdio"
#include "cmath"
using namespace std;

int main (){
    int n,b,c;
    int k = 1;
    cin>>n;
    for (int i = 1; i <= n; i++) {
        cin >> b >> c;
        if (b <= 20) {
            int deep = (1<<b) - 1;
            int bstack[deep];
            memset(bstack, 0, sizeof(bstack));
            for (int j = 0; j < c ;j++ ){
                 k = 1;
                for ( ; ; ) {
                    bstack[k] =! bstack[k];
                    k = bstack[k] ? k*2:k*2+1;
                    if (k > deep ) {
                        break;
                    }
                }

            }


        }else{
            cout << "TOO DEEP" <<endl;
        }
    }
    cout << k/2 << endl;
    return 0;

}

版权声明:本文为博主原创文章,转载请联系1453799803@qq.com

uva 679 Dropping Balls

uva 679 Dropping Balls

UVa 679 Droppintg Balls (小球下落)

题目链接:UVa 679 题意: 有一颗二叉树,最大深度为D,且所有叶子的深度都相同。所有的结点从上到下从左到右编号为1,2,3,...,2^D-1。在结点1处放一个小球,它会往下落。每个内结点都...
  • Ramay7
  • Ramay7
  • 2015年12月28日 15:50
  • 298

Uva - 679 - Dropping Balls

这题真是经历了各种。。。 第一次对题目输入要求没有理解到位,直接RE了,第二次因为方式是模拟所有小球的下落,结果直接超时。 超时代码: #include #include #incl...

uva679 Dropping Balls

A number ofKballs are dropped one by one from the root of a fully binary tree structure FBT. Eachti...

UVA 679 Dropping Balls

题目链接 : http://acm.hust.edu.cn/vjudge/problem/19499题目:有一棵满二叉树,每个节点是一个开关,初始全是关闭的,小球从顶点落下, 小球每次经过开关就会把它...

例题 6-6 小球下落(Dropping Balls) UVa 679 二叉树规律

这题如果按照书上给的第一种方法会超时,不过那种模拟开关操作的方法是值得学习的 分析:直接模拟最后一个小球的路线。因为二叉树的除了最后一层没有子节点,其他的每一层的小球都是一颗子二叉树的根节点,,而且...

Dropping Balls, UVa679

原题目链接:Dropping Balls,UVa679 A number ofKballs are dropped one by one from the root ...
  • itbsl
  • itbsl
  • 2017年07月13日 10:26
  • 82

UVA-679 Dropping Balls

A number of K balls are dropped one by one from the root of a fully binary tree structure FBT. Each ...

UVA - 679 Dropping Balls

A number of K balls are dropped one by one from the root of a fully binary tree structure FBT. Each ...

UVa 679 - Dropping Balls 数学分析

Dropping Balls A number of K balls are dropped one by one from the root of a fully binary tree struc...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UVA-679-DROPING BALL
举报原因:
原因补充:

(最多只允许输入30个字)