#include<cstdio>
int A[15]={0,1,2,3,4,5,6,7,8,9,10};
int C[15];
int lowbit(int x)
{
return x&(-x);
}
int SUM(int n)
{
int sum=0;
while(n>0){
sum = sum + C[n];
n = n - lowbit(n);
}
return sum;
}
int main()
{
for(int i=1;i<=9;i++)
{
for(int j=i;j>=(i-lowbit(i)+1 );j--){
C[i]+=A[j];
}
}
for(int i=1;i<=9;i++) printf("%d ",C[i]); printf("\n");
for(int i=1;i<=9;i++) printf("%d\n",SUM(i));
return 0;
}
树状数组
最新推荐文章于 2024-07-02 22:40:02 发布