码迷,mamicode.com
首页 > 其他好文 > 详细

POJ2309BST【树状数组的理解】

时间:2014-09-25 00:11:08      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   ar   div   sp   

大意:

对于这个树bubuko.com,布布扣

告诉你一个节点问这个节点下的最小值和最大值

 

分析:

这个题考查对于树状数组的理解,   每个节点的前一个节点都是依次向前的 比如 10--8--4--2--1 后一个节点都是一次往后的比如10--12--16……

那么我们观察发现每个节点的最小值都是他爹+1,最大值都是他妈-1

 

代码:

bubuko.com,布布扣
 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 using namespace std;
 5 
 6 int lowbit(int x) {
 7     return x & ( - x );
 8 }
 9 
10 int main() {
11     int n;
12     int t;
13     scanf("%d",&t);
14     while(t--) {
15         scanf("%d",&n);
16         int n1 = n - lowbit(n);
17         printf("%d", n1 + 1);
18         int n2 = n + lowbit(n);
19         printf(" %d\n", n2 - 1);
20     }
21 }
View Code

 

POJ2309BST【树状数组的理解】

标签:style   blog   http   color   io   os   ar   div   sp   

原文地址:http://www.cnblogs.com/zhanzhao/p/3991600.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!