• UVa 679


    称号:有一个完整的二叉树,每个节点是一个开关,最初的全封闭,球从顶点丢弃。

                每次通过开关球将将其状态反转。现在先问k球落到d当层交换机经过号。

    分析:进制编码。经过模拟几次能够看出,球会让开关形成连续二进制数的表示(根是低位)。

                当放入第k个球时。开关状态正好是二进制的k。利用模2的余数推断走向就可以。

    说明:观察规律模拟处理就可以。

    #include <iostream>
    #include <cstdlib>
    #include <cstring>
    #include <cstdio>
    
    using namespace std;
    
    int main()
    {
    	int n,r,l;
    	while (cin >> n && n >= 0) {
    		while (n --) {
    			cin >> l >> r;
    			int k = 1;
    			while (-- l) {
    				if (r%2) k = k<<1;
    				else k = (k<<1)+1;
    				r = (r+1)>>1;
    			}
    			cout << k << endl;
    		}
    	}
    	return 0;
    }
    

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    shared_ptr weak_ptr boost 内存管理
    _vimrc win7 gvim
    qt 拖放
    数学小魔术 斐波那契数列
    qt4 程序 移植到 qt5
    (转)字符串匹配算法总结
    c++11
    BM 字符串匹配
    编译qt5 demo
    c++ 类库 学习资源
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4625257.html
Copyright © 2020-2023  润新知