zoukankan      html  css  js  c++  java
  • hdu3584 树状数组

    思路:从一维扩展到三维。可以看看poj2155的解法。

    #include<iostream>
    #include<cstring>
    #include<algorithm>
    #include<cstdio>
    #define Maxn 102
    #define lowbit(x) (x&(-x))
    using namespace std;
    int C[Maxn][Maxn][Maxn],n;
    int Sum(int i,int j,int k)
    {
        int sum=0;
        int y,z;
        y=j,z=k;
        while(i)
        {
            j=y;
            while(j)
            {
                k=z;
                while(k)
                {
                    sum+=C[i][j][k];
                    k-=lowbit(k);
                }
                j-=lowbit(j);
            }
            i-=lowbit(i);
        }
        return sum;
    }
    void update(int i,int j,int k)
    {
        int y,z;
        y=j,z=k;
        while(i<=n)
        {
            j=y;
            while(j<=n)
            {
                k=z;
                while(k<=n)
                {
                    C[i][j][k]++;
                    k+=lowbit(k);
                }
                j+=lowbit(j);
            }
            i+=lowbit(i);
        }
    }
    int main()
    {
        int x1,x2,y1,y2,z1,z2,m,x;
        while(scanf("%d%d",&n,&m)!=EOF)
        {
            memset(C,0,sizeof(C));
            while(m--)
            {
                scanf("%d",&x);
                if(x==0)
                {
                    scanf("%d%d%d",&x1,&y1,&z1);
                    printf("%d
    ",Sum(x1,y1,z1)&1);
                }
                if(x==1)
                {
                    scanf("%d%d%d%d%d%d",&x1,&y1,&z1,&x2,&y2,&z2);
                    update(x1,y1,z1);
                    update(x1,y2+1,z1);
                    update(x2+1,y2+1,z1);
                    update(x2+1,y1,z1);
                    update(x1,y1,z2+1);
                    update(x1,y2+1,z2+1);
                    update(x2+1,y2+1,z2+1);
                    update(x2+1,y1,z2+1);
                }
            }
        }
        return 0;
    }
  • 相关阅读:
    shell:bash基本特性
    python_day02
    python_day01
    centos环境下安装python3以及pip3
    http1到http3的巨大变化
    HTTP协议
    bootstrap
    JQuery
    BOM与DOM
    23种设计模式的几种常见的设计模式
  • 原文地址:https://www.cnblogs.com/wangfang20/p/3228872.html
Copyright © 2011-2022 走看看