請你實現乙個類 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...