POJ2309 BST

POJ2309 BST

大家好,又见面了,我是全栈君。

 
Time Limit: 1000MS   Memory Limit: 65536KB   64bit IO Format: %lld & %llu

Description

Consider an infinite full binary search tree (see the figure below), the numbers in the nodes are 1, 2, 3, …. In a subtree whose root node is X, we can get the minimum number in this subtree by repeating going down the left node until the last level, and we can also find the maximum number by going down the right node. Now you are given some queries as “What are the minimum and maximum numbers in the subtree whose root node is X?” Please try to find answers for there queries. 



POJ2309 BST

Input

In the input, the first line contains an integer N, which represents the number of queries. In the next N lines, each contains a number representing a subtree with root number X (1 <= X <= 2 
31 – 1).

Output

There are N lines in total, the i-th of which contains the answer for the i-th query.

Sample Input

2
8
10

Sample Output

1 15
9 11

Source

POJ Monthly,Minkerui
 
用树状数组的lowbit处理即可。(x&-x)可以取出x二进制表示下的最后一个1,即可知x的管辖半径。
 1 /*by SilverN*/
 2 #include<algorithm>
 3 #include<iostream>
 4 #include<cstring>
 5 #include<cstdio>
 6 #include<cmath>
 7 using namespace std;
 8 int read(){
 9     int x=0,f=1;char ch=getchar();
10     while(ch<'0' || ch>'9'){
     
     if(ch=='-')f=-1;ch=getchar();}
11     while(ch>='0' && ch<='9'){x=x*10+ch-'0';ch=getchar();}
12     return x*f;
13 }
14 int lowbit(int x){
     
     return x&-x;}
15 int T;
16 int n;
17 int main(){
18     T=read();
19     while(T--){
20         n=read();
21         printf("%d %d\n",n-lowbit(n)+1,n+lowbit(n)-1);
22     }
23     return 0;
24 }

 

转载于:https://www.cnblogs.com/SilverNebula/p/5889498.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108872.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java代码运行简单js方法案例

    java代码运行简单js方法案例java代码运行简单js方法案例

    2022年4月24日
    55
  • Highways「建议收藏」

    Highways「建议收藏」HighwaysTimeLimit:1000MS MemoryLimit:10000KTotalSubmissions:14613 Accepted:4211 SpecialJudgeDescriptionTheislandnationofFlatopiaisperfectlyflat.

    2022年4月26日
    41
  • 那些年我踏过的坑~

    那些年我踏过的坑~

    2021年7月9日
    72
  • JAVA常见容器_JAVA比较容器

    JAVA常见容器_JAVA比较容器假设上面已经有了各个容器的继承关系,我们就顺着继承关系说一下各个接口或者类的特点吧。Iterable接口Iterable是一个超级接口,被Collection所继承。它只有一个方法:Iterator&amp;lt;T&amp;gt;iterator()//即返回一个迭代器迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被…

    2025年7月3日
    7
  • 手机怎么模拟125k卡_NFC手机能模拟门禁卡吗?

    手机怎么模拟125k卡_NFC手机能模拟门禁卡吗?支持官方ROM的手机小米、华为、一加、索尼、三星(s4、s5、note3)、google亲儿子、魅族、LG、HTC、努比亚、乐视、moto、联想……不支持官方ROM的手机三星s6、s6e、s7、s7e、s8、s8+等等(官方rom不支持,但刷第三方rom支持,比如三星极光ROM)支持的手表Watch华为Watch2……支持的卡id”NFC卡模拟”能添加和模拟4字节、7字节和10字…

    2022年5月6日
    198
  • MariaDB安装教程

    MariaDB安装教程注:从MariaDB10.4.3开始,不再提供预构建的数据目录,并且用户需要运行mysql_install_db.exe来创建数据目录1、解压到自定义路径E:\MariaDB\mariadb-10.5.4-winx642、将其中的bin加入path系统环境路径3、用管理员方式打开cmd,并打开bin目录4、输入mysql_install_db.exe–datadir=E:\MariaDB\mariadb-10.5.4-winx64\data–service=MyMar..

    2022年6月14日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号