poj2155 树状数组简单题

修改一个区间,查询一个点。
#include
#include
#define max 1010
int map[max][max];
int N,T;
int lowBit(int x)
{
    return x&(-x);
}
int getSum(int x,int y)
{
    int i,j;
    int sum=0;
    for(i=x; i>0; i-=lowBit(i))
    {
        for(j=y; j>0; j-=lowBit(j))
        {
            sum+=map[i][j];
        }
    }
    sum=sum%2;
    return sum;
}
void upDate(int x,int y)
{
    int i,j;
    for(i=x; i<=N; i+=lowBit(i))
    {
        for(j=y; j<=N; j+=lowBit(j))
        {
            map[i][j]++;
        }
    }
}
int main()
{
    int t;
    int i,j;
    int m;
    int x1,y1,x2,y2;
    char ch[10];
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d %d",&N,&T);
        memset(map,0,sizeof(map));
        for(i=0; i

你可能感兴趣的:(树状数组与线段树)