2019中山大學程式設計競賽 Monitor

2022-06-03 07:06:10 字數 782 閱讀 7854

題目位址

題目大意:給你乙個n*m的矩形,在這個矩形內告訴你p個矩形(左下角和右上角座標),問你q個問題,每次也是給你乙個矩形(左下角和右上角座標),問你每個矩形是否可以被開始給的p個矩形完全覆蓋。

思路:n*m範圍是1e7,無法開二維陣列,二維座標可以轉化為(n-1)*m+m,用一維陣列來記錄每個座標的字首和(即為這個點與0,0點組成矩形的面積),先通過二維差分,將字首和記錄一邊。因為有覆蓋的情況,所以將字首和大於0的初始化為1,在來一遍字首和,處理好之後就可以o(1)的時間算出每個矩形是否可以覆蓋。

#includeusing

namespace

std;

const

int maxn=1e7+10

;int

sum[maxn];

intd[maxn];

intn,m;

int fun(int x,int

y)int

main()

for(int j=1; j<=n; j++)

for(int i=1; i<=m; i++)

for(int i=1; i<=n*m; i++)

//for(int j=n; j>=1; j--)

////

printf("\n");//}

for(int j=1; j<=n; j++)

for(int i=1; i<=m; i++)

intq;

cin>>q;

for(int i=1; i<=q; i++)

}

2019中山大學程式設計競賽

theme 給定n m矩陣,有p個操作 將以 x1,y1 x2,y2 為左上 右下的矩陣覆蓋。之後q次詢問 以 x1,y1 x2,y2 為左上 右下的矩陣是否有全被覆蓋?solution 二維字首和。先由一次字首和 差分 計算出每個格仔被覆蓋的次數之和。然後將不為0的值 置為1,再進行字首和就算出每...

中山大學C 語言程式設計

cxsj01.csf cxsj02.csf cxsj03.csf cxsj04.csf cxsj05.csf cxsj06.csf cxsj07.csf cxsj08.csf cxsj09.csf cxsj10.csf cxsj11.csf cxsj12.csf cxsj13.csf cxsj14....

中山大學sicily第1813題

下面是我寫的1813題的 提交結果總是wrong answer,卻怎麼也找不錯來。請各位幫忙。中大sicily第1813題題目在http soj.me show problem.php?pid 1813 cid include include include using namespace std ...