poj 1195(二维树状数组)
生活随笔
收集整理的這篇文章主要介紹了
poj 1195(二维树状数组)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
解題思路:這是一道很裸的二維樹(shù)狀數(shù)組
AC:
#include<stdio.h> #include<string.h> #define N 1100 int c[N][N],n,arr[N][N];int lowbit(int x) {return x&(-x); }void update(int x,int y,int num) {int i,j;for(i=x;i<=n;i+=lowbit(i))for(j=y;j<=n;j+=lowbit(j))c[i][j]+=num; }int sum(int x,int y) {int i,j,s=0;for(i=x;i>0;i-=lowbit(i))for(j=y;j>0;j-=lowbit(j))s+=c[i][j];return s; }int getsum(int x1,int y1,int x2,int y2) {return sum(x2,y2)-sum(x1-1,y2)-sum(x2,y1-1)+sum(x1-1,y1-1); }int main() {int op,x,y,l,b,r,t,a;while(scanf("%d",&op)!=EOF){if(op==0){scanf("%d",&n);memset(c,0,sizeof(c));}else if(op==1){scanf("%d%d%d",&x,&y,&a);update(x+1,y+1,a);}else if(op==2){scanf("%d%d%d%d",&l,&b,&r,&t);int ans=getsum(l+1,b+1,r+1,t+1);printf("%d\n",ans);}}return 0; }與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖
總結(jié)
以上是生活随笔為你收集整理的poj 1195(二维树状数组)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: springboot学习,实现原理技术点
- 下一篇: Excel和Word 简易工具类,JEa