2023年 noipc 提高組複賽 第一題

2021-08-25 13:53:43 字數 1533 閱讀 7645

題目描述

為了準備乙個獨特的頒獎典禮,組織者在會場的一片矩形區域(可看做是平面直角座標系的第一象限)鋪上一些矩形地毯。一共有

nn n 張地毯,編號從

1 到 n。現在將這些地毯按照編號從小到大的順序平行於座標軸先後鋪設,後鋪的地毯覆蓋在前面已經鋪好的地毯之上。

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

輸入輸出格式

輸入格式:

輸入共

n+2 行

第一行,乙個整數

n,表示總共有

n張地毯

接下來的

n 行中,第

i+1 行表示編號

i 的地毯的資訊,包含四個正整數

a,b,g,k ,每兩個整數之間用乙個空格隔開,分別表示鋪設地毯的左下角的座標

(a,b) 以及地毯在 x 軸和 y 軸方向的長度

第 n+2 行包含兩個正整數

x和 y ,表示所求的地面的點的座標(x,y)

輸出格式:

輸出共

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

−1輸入輸出樣例

輸入樣例#1:

3 1 0 2 3

0 2 3 3

2 1 3 3

2 2

輸出樣例#1:

3輸入樣例#2:

3 1 0 2 3

0 2 3 3

2 1 3 3

4 5

輸出樣例#2:

-1 說明

【樣例解釋1】

如下圖,

1號地毯用實線表示,

2號地毯用虛線表示,

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

【資料範圍】

對於30% 的資料,有

n≤2

對於50% 的資料,

0≤a,b,g,k≤100

對於100%的資料,有

0≤n≤10,000

0≤a,b,g,k≤100,000 。

noip2011提高組day1第1題

這道題看完就想到直接模擬,

用tan來記錄每個毯子的資料

#include 

using

namespace

std;

struct nodetan[10005];

int main()

int mx,my;

cin>>mx>>my;

int flag=0;

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

}if(flag!=0)tan[10005];

int main()

int mx,my;

cin>>mx>>my;

for(int i=n;i>=1;i--)

}cout

<<"-1"

0;}

2023年noipc 提高組複賽 第三題

先理解題目可以把這題目抽象為 把一些點放入兩個集合中,使每個集合中的點與點的敵對關係的最大值最小 儲存關係可以想到用並查集 然後根據貪心思想從關係最大的開始,這樣能使集合中的敵對關係的最大值最小 將有敵對關係的點放到不同的集合裡。從大到小進行決策直到發現有某一組組合已經在同乙個監獄裡,那麼輸出他們的...

2023年NOIP普及組複賽題解

題目涉及演算法 這道題目是一道基礎的模擬題,只需要模擬將數字進行翻轉就可以了,注意 0 和 負數。實現 如下 include using namespace std void solve int num if num 0 int t 0 while num 0 cout t endl int n i...

洛谷 鋪地毯 NOIP2011提高組複賽

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