poj 2309 按位与 &(以x为根的满二叉搜索树的最小节点编号、最大节点编号)

来源:互联网 发布:ck商标 知乎 编辑:程序博客网 时间:2024/04/29 08:32

1 & 1 = 1

0 & 1 = 0

0 & 0 = 0


按位与就是那一位全部是 1  的时候是为 1 


 - x  表示为 x 的补码 +1 

   例如 x = 8时 :

                 x    0 0 0 1 1 0 0 0

              - x     1 1 1 0 1 0 0 0


整数运算    x&(-x):

当 x 为 0 时结果为 0

x 为奇数时,结果为 1

x 为偶数时,结果为 x 中 2 的最大次方的因子



x &( x - 1 ):

去掉x最低位的 1 




以x为根的满二叉搜索树的最小节点编号、最大节点编号






#include <stdio.h>int lowbit(int x){    return x&(-x);}int main(){    int t;    scanf("%d",&t);    while(t--){        int x;        scanf("%d",&x);                printf("%d %d\n",x-lowbit(x)+1,x+lowbit(x)-1);    }    return 0;}


0 0
原创粉丝点击