題意:給乙個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...