国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

二維樹狀數(shù)組(poj 1195)

2019-11-11 01:26:24
字體:
供稿:網(wǎng)友

題目:http://poj.org/PRoblem?id=1195

題意:

給出一個全0的矩陣,然后一些操作0 S:初始化矩陣,維數(shù)是S*S,值全為0,這個操作只有最開始出現(xiàn)一次1 X Y A:對于矩陣的X,Y坐標(biāo)增加A2 L B R T:詢問(L,B)到(R,T)區(qū)間內(nèi)值的總和3:結(jié)束對這個矩陣的操作

題解:利用二維樹狀數(shù)組,利用logn復(fù)雜度對一個點進(jìn)行更新,再利用logn復(fù)雜度踐行查找,題目就很簡單了

代碼:

#include<cstdio>#include<cstdio>#include<cstring>#include<string>#include<algorithm>using namespace std;int c[1500][1500];int MAXN=1025;//樹狀數(shù)組常用的東西,不加多說int lowbit(int x){    return x & (-x);}//注意 該更新是二維更新,復(fù)雜度logn × lognint add(int x,int y,int val){    for(int i=x;i<=MAXN;i+=lowbit(i))    {        for(int j=y;j<=MAXN;j+=lowbit(j))        {            c[i][j]+=val;        }    }}//求和操作int sum(int x,int y){    int sum=0;    for(int i=x;i>0;i-=lowbit(i))    {        for(int j=y;j>0;j-=lowbit(j))        {            sum+=c[i][j];        }    }    return sum;}int main(){    int l,r;    scanf("%d %d",&l,&r);    MAXN=r;    int q;    while(~scanf("%d",&q) && q!=3)    {        if(q==1)        {            int x,y,val;            scanf("%d %d %d",&x,&y,&val);            x++;y++;            add(x,y,val);        }        else if(q==2)        {            int l1,l2,r1,r2;            scanf("%d%d%d%d",&x,&y,&l1,&r1);            x++;            y++;            l1++;            r1++;            printf("%d/n",sum(l1,r1)-sum(l1,y-1)-sum(x-1,r1)+sum(x-1,y-1));        }    }    return 0;}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 甘南县| 涞水县| 开远市| 西充县| 岚皋县| 宁明县| 射洪县| 崇明县| 阳江市| 清镇市| 南开区| 江西省| 石台县| 沂源县| 连平县| 沙田区| 夹江县| 东平县| 临汾市| 新营市| 正宁县| 卫辉市| 郓城县| 家居| 衡南县| 阿鲁科尔沁旗| 独山县| 平原县| 淅川县| 麟游县| 会泽县| 章丘市| 揭阳市| 德阳市| 枣庄市| 天柱县| 乌鲁木齐县| 浦县| 乌兰察布市| 宕昌县| 玛多县|