題目鏈結
本文再次講解二維字首和。
首先我們來看一維字首和。
給定乙個序列,在序列上進行區間加減,怎麼做呢?
我們需要引入差分陣列。
例如原序列為[0,0,0,0,0,0,0]
在[1,3]上加1,則差分陣列上就變成了[0,1,0,0,-1,0,0]
然後對差分陣列求字首和,我們發現,其字首和陣列為[0,1,1,1,0,0,0]。
其結果正是對原序列在[1,3]上加1
於是我們可以得出乙個結論,區間加減可以使用差分的思想,而差分陣列的字首和就是原陣列。
再來看二維字首和。
二維字首和與一維字首和有一些不同之處:二維陣列上的差分是從左上到右下,而二維陣列的字首和是右下到左上。
如果可以理解這句話的含義,那麼**寫起來就沒有什麼問題了。
直接看**吧:
#include #include #include using namespace std;
const int maxn = 1010;
int mp[maxn][maxn],cf[maxn][maxn];
int main()
for(int i=1;i<=n;i++)
printf("\n");
}return 0;
}
洛谷 P3397 地毯
此題約為noip提高組day2t1難度。在n n的格仔上有m個地毯。給出這些地毯的資訊,問每個點被多少個地毯覆蓋。輸入格式 第一行,兩個正整數n m。意義如題所述。接下來m行,每行兩個座標 x1,y1 和 x2,y2 代表一塊地毯,左上角是 x1,y1 右下角是 x2,y2 輸出格式 輸出n行,每行...
洛谷 P3397 地毯
此題約為noip提高組day2t1難度。在 n times n 的格仔上有 m 個地毯。給出這些地毯的資訊,問每個點被多少個地毯覆蓋。第一行,兩個正整數 n,m 意義如題所述。接下來 m 行,每行兩個座標 x 1,y 1 和 x 2,y 2 代表一塊地毯,左上角是 x 1,y 1 右下角是 x 2,...
洛谷 P3397 地毯(二維差分)
題目描述 在n n的格仔上有m個地毯。給出這些地毯的資訊,問每個點被多少個地毯覆蓋。輸入格式 第一行,兩個正整數n m。意義如題所述。接下來m行,每行兩個座標 x1,y1 和 x2,y2 代表一塊地毯,左上角是 x1,y1 右下角是 x2,y2 輸出格式 輸出n行,每行n個正整數。第i行第j列的正整...