二維字首和入門例題 海嘯

2021-09-11 19:00:41 字數 632 閱讀 6523

給你乙個矩陣,然後再給你乙個數d,然後再給q個詢問,每次次詢問會給出要查詢的子矩陣的左上角和右下角,然後

要給出子矩陣中有多少個數字是大於等於d的

顯然,看到這種題目,我首先會想到的是暴力,但是仔細想一想,沒那麼簡單,畢竟資料範圍那麼大,暴力超時可是妥妥的,怎麼辦呢?其實這個問題是不是在**見過呢?涉及到區間問題,一維下我記得有個東西叫做字首和,可以在o(1)的情況下查詢區間,那麼二維下有沒有字首和呢?去查了查,還真有。具體操作可以看下面的**,

emmm,這道題有個坑點,就是那個二維陣列的初始化大小沒有明確,開始wa了很多發,還不知道是**wa 的,後來改了陣列那裡才過了,以後看到這樣的要求就要記得這次學到的東西。

#include

#include

#define ll long long

intmain()

else h[i]

[j]=1;

}}for(i=

1;i<=n;i++)}

int q;

scanf

("%d"

,&q)

;int a,b,x,y;

while

(q--

)return0;

}

二維字首和

時間限制 1 sec 記憶體限制 128 mb 提交 155 解決 51 提交 狀態 討論版 命題人 admin 題目描述 一種新型的雷射炸彈,可以摧毀乙個邊長為r的正方形內的所有的目標。現在地圖上有n n 10000 個目標,用整數xi,yi 0 xi,yi 5000 表示目標在地圖上的位置,每個...

二維字首和

1 二維字首和 模板 二維字首和 模板題 acwing 796.子矩陣的和 s i,j 第i行j列格仔左上部分所有元素的和 1.以 x1,y1 為左上角,x2,y2 為右下角的子矩陣的和為 s x2 y2 s x1 1 y2 s x2 y1 1 s x1 1 y1 1 s x y s x y 1 s...

二維字首和

直接看乙個例子 假設給定乙個矩陣 1 2 4 3 5 1 2 4 6 3 5 9 那麼,可以推出他的二維字首和矩陣為 1 3 7 10 691522 121829 45 在二維字首和陣列中,9 1 2 5 1 15 1 2 5 1 4 2 18 1 5 6 2 1 3 即二位字首和陣列中第 i 行第...