poj 2309 BST 使用树阵lowbit
2015-12-07 21:54
387 查看
假设领悟了树阵lowbit,这个问题很简单,底部是奇数,使用lowbit(x)寻找x父亲,然后x父亲-1是的最大数量
至于lowbit问题是如何计算,寻找x父亲,事实上x+2^x二进制结束0的数量。
至于lowbit问题是如何计算,寻找x父亲,事实上x+2^x二进制结束0的数量。
#include<iostream> #include<stdio.h> using namespace std; typedef long long ll; ll lowbit(int x){ return x&(-x); } int main(){ ll n,a; cin>>n; while(n--){ cin>>a; if(a%2!=0){ cout<<a<<" "<<a<<endl; } else{ ll max=a+lowbit(a)-1; ll min=a-(max-a); cout<<min<<" "<<max<<endl; } } }
相关文章推荐
- 使用http协议访问svn
- java并发编程实战学习笔记之任务执行
- MATLAB 读取AVI视频 Unable to locate decompressor to decompress video stream
- 面向切面的Spring
- oracle SQL%ISOPEN
- 五、JAX-WS的详细介绍
- Oracle查询表结构的常用语句
- java基础知识巩固
- hdu 5592 ZYB's Premutation(线段树求逆序数)
- web架构设计经验分享(转)
- 四、契约优先的编写方式
- jquery之radio
- Sql语句查看表结构
- Oracle OLAP 与 OLTP
- Just a note!
- cd命令
- 森林病虫防治系统 (十三)
- java学习:利用JScrollpane增加文本域滚轮(滚动条)
- CSU 1552-Friends(大数判断素数+二分匹配)
- 实验三 进程调度的模拟实验