设为首页 加入收藏

TOP

hdu1166 树状数组
2014-11-23 20:25:35 来源: 作者: 【 】 浏览:6
Tags:hdu1166
 
不知道为什么用C++输入输出死活不过,换成C的就过了。。。 
#include   
#include   
 
//==============================  
#define maxn 50020  
 
int c[maxn]; 
int a[maxn]; 
int n; 
int t; 
 
int lowbit(int x) 
{ 
    return x&(-x); 
} 
 
int Sum(int n) 
{ 
    int sum = 0; 
    while(n>0) 
    { 
        sum += c[n]; 
        n = n - lowbit(n); 
    } 
    return sum; 
} 
 
void update(int i,int x) 
{ 
    while(i <= n) 
    { 
        c[i] = c[i] + x; 
        i = i + lowbit(i); 
    } 
} 
 
int GetSum(int x1,int x2) 
{ 
    return Sum(x2) - Sum(x1-1); 
} 
 
//===================================  
int main() 
{ 
    scanf("%d",&t); 
    int count = 0; 
    while(t--) 
    { 
        count++; 
        memset(a,0,sizeof(a)); 
        memset(c,0,sizeof(c)); 
        scanf("%d",&n); 
        for(int i = 1; i <= n; i++) 
        { 
            scanf("%d",&a[i]); 
            update(i,a[i]); 
        } 
        //cout<<"case "< 
 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇hdu 2072 下一篇C++子类析构问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·我的Linux内核学习笔 (2025-12-26 22:21:10)
·如何评价腾讯开源的 (2025-12-26 22:21:07)
·为什么TCP网络编程中 (2025-12-26 22:21:04)
·Python 数据分析与可 (2025-12-26 21:51:20)
·从零开始学Python之 (2025-12-26 21:51:17)