POJ_3067_树状数组
来源:互联网 发布:将要淘汰的编程语言 编辑:程序博客网 时间:2024/05/22 02:03
//============================================================================
// Name : POJ_3067.cpp
// Author : tiger
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
#include <ctype.h>
using namespace std;
#define MAX 1001
int map[MAX][MAX];
int c[MAX][MAX];
int n,m;
int lowbit(int x)
{
return x&(-x);
}
void update(int x,int y, int add)
{
int i,j;
for(i = x; i <=n;i+=lowbit(i))
{
for(j = y; j<= m; j+= lowbit(j))
{
c[i][j] += add;
}
}
}
int SUM(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 += c[i][j];
}
}
return sum;
}
int main() {
freopen("in","r",stdin);
int t,k,i,j;
scanf("%d",&t);
int a,b;
__int64 sum;
for(i = 1; i <= t; i++)
{
memset(c,0,sizeof(c));
memset(map,0,sizeof(map));
scanf("%d %d %d",&n,&m,&k);
for(j = 0; j < k; j++)
{
scanf("%d %d",&a,&b);
map[a][m+1-b] = 1;
update(a,m+1-b,1);
}
sum = 0;
for(j = 1; j <= n; j++)
{
for(k = 1; k <= m; k++)
{
if(map[j][k])
{
sum += (__int64)SUM(j-1,k-1);
}
}
}
printf("Test case %d: %I64d/n",i,sum);
}
return 0;
}
- POJ_3067_树状数组
- POJ_3067_树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- hdu 1715
- LINQ体验(17)——LINQ to SQL语句之动态查询
- 基于分割的图像恢复-A New Approach
- 英语四六级资料及下载 (很新很全,不看后悔)
- Perl学习笔记 No.12
- POJ_3067_树状数组
- Symbian常用设计模式之可伸缩对象工厂
- 毕业论文网址大全
- 20个非常有用的PHP类库
- 代码资源
- DOMDocument 属性和方法
- OpenDataSource函数,OPENROWSET函数
- Ext 常用方法
- tet