POJ 2029 (二維樹狀陣列)

2021-09-06 07:36:52 字數 823 閱讀 4599

題意:給乙個n*m的矩陣,裡面有些小矩陣有樹,再給乙個範圍,要你求在它所給定的範圍內,最多可以有多少顆樹?

思路:二維樹狀陣列..........

反思:一開始,我是對於矩陣給出的範圍直接處理的,結果錯了.........

#includeusing namespace std;

int s[105][105],c[105][105];

int lowbit(int x)

void updata(int x,int y,int v) }}

int getsum(int x,int y)

} return sum;

}int main()

for(i=1;i<=n;i++)

for(j=1;j<=m;j++)

s[i][j]=getsum(i,j);

int a,b,max=0,k;

scanf("%d%d",&a,&b); //注意:a,b是給出的小矩陣的範圍,此題要對其進行-1處理,因為要是a==3,b==4,原意是要計算

a--; //行為3,列為4的小矩陣內最多可以有多少課樹,如果不-1,則會變成行為4,列為5的小矩陣

b--; //內最多有多少棵樹.............

for(i=1;i+a<=n;i++)

for(j=1;j+b<=m;j++)

printf("%d\n",max);

} return 0;

}

POJ 2029 二維樹狀陣列

題意 給乙個w h的矩陣,n個座標點被標記,給出s t的矩陣,問它能容納最多多少個標記點。解析 暴力列舉每一塊區間,注意座標點,比如定位i,j,左上角點應該為 i s 1,j t 1。算的時候還是那一套,畫圖更容易理解。接下來就是二維樹狀陣列的維護了。include include include ...

poj 2155 (二維樹狀陣列)

這個題目就是給你乙個0 1矩陣,每次給你乙個長方形的矩形,在矩形內的所有資料都做非運算。看出來是乙個二維的樹狀陣列,就是求每個點經過了幾次翻轉,而c陣列就是記錄翻轉的個數的!相當於加 1 q時就做 2或者是 2運算 很基礎的模板題。include include include include us...

POJ 1195 二維樹狀陣列

題意 現對矩陣進行以下操作。0,將乙個方陣初始化為全0。1,某個位置的數加上乙個值。2,詢問某個區域的數字和。要求對每個詢問求出其和。使用二維樹狀陣列即可 matrix x1,y1,x2,y2 sum x2,y2 sum x1 1,y1 1 sum x2,y1 1 sum x1 1,y2 inclu...