題解 洛谷P1003鋪地毯

2021-10-10 16:35:39 字數 1576 閱讀 6397

為了準備乙個獨特的頒獎典禮,組織者在會場的一片矩形區域(可看做是平面直角座標系的第一象限)鋪上一些矩形地毯。一共有 nn 張地毯,編號從 11 到 nn。現在將這些地毯按照編號從小到大的順序平行於座標軸先後鋪設,後鋪的地毯覆蓋在前面已經鋪好的地毯之上。

地毯鋪設完成後,組織者想知道覆蓋地面某個點的最上面的那張地毯的編號。注意:在矩形地毯邊界和四個頂點上的點也算被地毯覆蓋。

輸入共 n + 2行。

第一行,乙個整數 n,表示總共有 nn 張地毯。

接下來的 nn行中,第 i+1 行表示編號 i 的地毯的資訊,包含四個整數 a ,b ,g ,k每兩個整數之間用乙個空格隔開,分別表示鋪設地毯的左下角的座標 (a, b) 以及地毯在 x 軸和 y軸方向的長度。

第 n + 2行包含兩個整數 x和 y,表示所求的地面的點的座標 (x, y)。

輸出共 1 行,乙個整數,表示所求的地毯的編號;若此處沒有被地毯覆蓋則輸出-1

輸入 #1

31 0 2 3

0 2 3 3

2 1 3 3

2 2輸出 #1

3輸入 #2

31 0 2 3

0 2 3 3

2 1 3 3

4 5輸出 #2

-1

【樣例解釋 1】

如下圖,1 號地毯用實線表示,2 號地毯用虛線表示,3 號用雙實線表示,覆蓋點 (2,2) 的最上面一張地毯是 3 號地毯。

【資料範圍】

拿到這道題,我第一反應是直接進行模擬。也就是開乙個很大的陣列,然後把資料模擬進去。可是這樣子就有問題了。這a,b,g,k最大值是10的5次方啊。這記憶體絕對**。看來模擬的方法是不能ac的了。

換個思路

先把每一組資料輸入進來。由於這些資料具有覆蓋的特點,也就是後面的資料會覆蓋掉前面的資料。所以我們只需要逆過來查詢就可以了。把要查詢的點從輸入資料的最末端開始查詢是否符合條件。如果符合,則輸出,並終止查詢。如果找完所有資料都沒法找到一塊合適的地毯,那就輸出-1.

然後有了這個思路,**就很好辦了。直接上**就好了。

洛谷 P1003 鋪地毯

題目描述 為了準備乙個獨特的頒獎典禮,組織者在會場的一片矩形區域 可看做是平面直角座標系的第一象限 鋪上一些矩形地毯。一共有 n 張地毯,編號從 1 到n 現在將這些地毯按照編號從小到大的順序平行於座標軸先後鋪設,後鋪的地毯覆蓋在前面已經鋪好的地毯之上。地毯鋪設完成後,組織者想知道覆蓋地面某個點的最...

洛谷P1003 鋪地毯

為了準備乙個獨特的頒獎典禮,組織者在會場的一片矩形區域 可看做是平面直角座標系的第一象限 鋪上一些矩形地毯。一共有 n 張地毯,編號從 1 到n 現在將這些地毯按照編號從小到大的順序平行於座標軸先後鋪設,後鋪的地毯覆蓋在前面已經鋪好的地毯之上。地毯鋪設完成後,組織者想知道覆蓋地面某個點的最上面的那張...

洛谷 P1003 鋪地毯

題目描述 為了準備乙個獨特的頒獎典禮,組織者在會場的一片矩形區域 可看做是平面直角座標系的第一象限 鋪上一些矩形地毯。一共有 n 張地毯,編號從 1 到n 現在將這些地毯按照編號從小到大的順序平行於座標軸先後鋪設,後鋪的地毯覆蓋在前面已經鋪好的地毯之上。地毯鋪設完成後,組織者想知道覆蓋地面某個點的最...