1476 子矩形查詢 2020 9 23

2021-10-09 17:26:09 字數 991 閱讀 4623

請你實現乙個類 subrectanglequeries ,它的建構函式的引數是乙個 rows x cols 的矩形(這裡用整數矩陣表示),並支援以下兩種操作:

updatesubrectangle(int row1, int col1, int row2, int col2, int newvalue)

用 newvalue 更新以 (row1,col1) 為左上角且以 (row2,col2) 為右下角的子矩形。

2. getvalue(int row, int col)

返回矩形中座標 (row,col) 的當前值。

class

subrectanglequeries

:def

__init__

(self, rectangle: list[list[

int]])

: self.rectangle = rectangle

defupdatesubrectangle

(self, row1:

int, col1:

int, row2:

int, col2:

int, newvalue:

int)

->

none

:for i in

range

(row1, row2+1)

:for j in

range

(col1, col2+1)

: self.rectangle[i]

[j]= newvalue

defgetvalue

(self, row:

int, col:

int)

->

int:

return self.rectangle[row]

[col]

這個題很簡單,但是在題解裡找到乙個說法是,更新矩陣的值是非常耗時耗力的工作,可以用字典來儲存。

1476 子矩形查詢

請你實現乙個類 subrectanglequeries 它的建構函式的引數是乙個 rows x cols 的矩形 這裡用整數矩陣表示 並支援以下兩種操作 1.updatesubrectangle int row1,int col1,int row2,int col2,int newvalue 用 n...

陣列 1476 子矩形查詢

1.暴力法 class subrectanglequeries object def init self,rectangle type rectangle list list int self.data rectangle def updatesubrectangle self,row1,col1,...

hihocoder 1476 矩形計數

顯然就是容斥原理了。先算出所有的矩陣一共有多少個 ll sum n n 1 2 m m 1 2 然後考慮對於任取x個黑色方框,他們組成乙個新的矩形,然後計算有多少個矩陣會覆蓋整個矩形,也即,兩條邊所夾住的對頂兩個小正方形的所有點的乘積 奇減偶加即可 include using namespace s...