題意:在 n × n的格仔上有 m個地毯。
給出這些地毯的資訊,問每個點被多少個地毯覆蓋。
思路:二維差分優化使區間修改複雜度變為o(1),最後再求二維字首和
評價:二維差分板子
1 #include2using
namespace
std;3//
#define mod 9982443534//
const int inf = 1e8;
5 typedef long
long
ll;6
int n,m,a[1005][1005],b[1005][1005];7
void insert(int x1,int y1,int x2,int y2,intc)8
14int
main()
1523
for(int i=1;i<=n;i++)
2430 printf("\n"
);31}32
return0;
33 }
P3397 地毯(二維差分)
題意 在乙個n n的地圖中,有m張地毯,每張矩形地毯的左上角和右下角已知,輸出最後整個地圖的每個點有多少張地毯覆蓋。思路 二維差分很明顯。二維字首和 二維線段樹也可以做。我們首先要用乙個陣列,記錄變化。對於 x1,y1 到 x2,y2 這一區間全部加1的話,我們需要a x1 y1 1,a x2 1 ...
洛谷 P3397 地毯(二維差分)
題目描述 在n n的格仔上有m個地毯。給出這些地毯的資訊,問每個點被多少個地毯覆蓋。輸入格式 第一行,兩個正整數n m。意義如題所述。接下來m行,每行兩個座標 x1,y1 和 x2,y2 代表一塊地毯,左上角是 x1,y1 右下角是 x2,y2 輸出格式 輸出n行,每行n個正整數。第i行第j列的正整...
洛谷P3397 地毯 二維字首和
題目鏈結 本文再次講解二維字首和。首先我們來看一維字首和。給定乙個序列,在序列上進行區間加減,怎麼做呢?我們需要引入差分陣列。例如原序列為 0,0,0,0,0,0,0 在 1,3 上加1,則差分陣列上就變成了 0,1,0,0,1,0,0 然後對差分陣列求字首和,我們發現,其字首和陣列為 0,1,1,...