/**
[树状数组] poj 2029 Get Many Persimmon Trees#裸的二维树状数组
*/
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
#define N 101
#define lowbit(i) (i) & (-i)
int a[N][N];
int m,n;
void update(int x,int y)
{
int i,j;
for(i = x; i <= m; i += lowbit(i))
for(j = y; j <= n; j += lowbit(j) )
a[i][j] ++;
}
int sum(int x,int y)
{
int i,j,ans = 0;
for(i = x; i > 0; i -= lowbit(i))
for(j = y ; j > 0; j -= lowbit(j))
ans += a[i][j];
return ans;
}
int main()
{
int q,s,t,i,j,ans;
while(scanf("%d",&q) == 1 && q)
{
[树状数组] poj 2029 Get Many Persimmon Trees#裸的二维树状数组
最新推荐文章于 2021-08-12 23:47:15 发布
这是一个使用二维树状数组解决POJ 2029问题的C++代码实现。代码中定义了更新和查询两个函数,通过遍历并利用lowbit优化,有效地进行区间累加操作。在主函数中,读取问题数量及矩阵大小,进行一系列的更新和查询,最后计算并输出最大值。
摘要由CSDN通过智能技术生成