您的位置:首页 > 其它

poj 2309(树状数组lowbit)

2014-06-28 11:21 281 查看
题意是给你一个满二叉树,给一个数字,求以这个数为根的树中最大值和最小值。

理解树状数组中的lowbit的用法。

目前的个人理解就是 lowbit 求出来的是这个根的管辖区域。

代码:

#include <stdio.h>

int lowbit(int n)
{
return n & (-n);
}

int main()
{
int ncase;
scanf("%d", &ncase);
while (ncase--)
{
int k;
scanf("%d", &k);
printf("%d %d\n", k - lowbit(k) + 1, k + lowbit(k) - 1);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: