如何求 si:略
si 用來幹嘛的?
很簡單
#include
輸入乙個n行m列的整數矩陣,再輸入q個詢問,每個詢問包含四個整數x1, y1, x2, y2,表示乙個子矩陣的左上角座標和右下角座標。
對於每個詢問輸出子矩陣中所有數的和。
輸入格式
第一行包含三個整數n,m,q。
接下來n行,每行包含m個整數,表示整數矩陣。
接下來q行,每行包含四個整數x1, y1, x2, y2,表示一組詢問。
輸出格式
共q行,每行輸出乙個詢問的結果。
資料範圍
1≤n,m≤1000,
1≤q≤200000,
1≤x1≤x2≤n,
1≤y1≤y2≤m,
−1000≤矩陣內元素的值≤1000
輸入樣例:
3 4 3
1 7 2 4
3 6 2 8
2 1 2 3
1 1 2 2
2 1 3 4
1 3 3 4
輸出樣例:
1727
21**:
#include
const
int n =
1010
;int n, m, q;
int a[n]
[n], s[n]
[n];
intmain()
}for
(int i =
1; i <= n;
++i)
}while
(q--
)return0;
}
演算法基礎課 字首和
通常,求乙個陣列中間序列的和,可以遍歷一次,這樣的時間複雜度是o n 如果需要頻繁獲得這個和,那麼每次都要重新計算一遍。為了提高效率,可以提前計算乙個字首和陣列,每次查詢任意乙個區間的和時,用s right s left 就可以了。輸入乙個長度為n的整數序列。接下來再輸入m個詢問,每個詢問輸入一對l...
AcWing演算法基礎1 5
字首和與差分 兩個內容都比較少,就放一起寫了 設陣列 a 的前 n 項為a1 a2 a3 an 字首和陣列就是每一項是a陣列的前i項和,比如字首和陣列res,res 1 a 1 res 2 a 1 a 2 res n a 1 a 2 a n 字首和可以在o 1 的時間內計算一段區間內的累加和,比如區...
AcWing演算法基礎1 4
高精度 高精度加法,高精度減法,高精度乘低精度,高精度除以低精度,大概平時用的最多的就是這四個,模板有兩種 因為我現在不太會用vector,就用陣列也寫了個,23333 高精度運算和人工手算差不多,就是模擬人工手算的過程,乘法有點不一樣,在下面有提到,大致也是模擬運算 廢話不多說,上模板 高精度加法...