第十屆藍橋杯C組 試題 G 外賣店優先順序

2021-10-04 01:17:01 字數 1129 閱讀 7700

【問題描述】

「飽了麼」外賣系統中維護著 n 家外賣店,編號 1 ∼ n。每家外賣店都有 乙個優先順序,初始時 (0 時刻) 優先順序都為 0。 每經過 1 個時間單位,如果外賣店沒有訂單,則優先順序會減少 1,最低減 到 0;而如果外賣店有訂單,則優先順序不減反加,每有一單優先順序加 2。 如果某家外賣店某時刻優先順序大於 5,則會被系統加入優先快取中;如果 優先順序小於等於 3,則會被清除出優先快取。 給定 t 時刻以內的 m 條訂單資訊,請你計算 t 時刻時有多少外賣店在優 先快取中。

【輸入格式】

第一行包含 3 個整數 n、m 和 t。 以下 m 行每行包含兩個整數 ts 和 id,表示 ts 時刻編號 id 的外賣店收到 乙個訂單。

【輸出格式】

輸出乙個整數代表答案。

【樣例輸入】

2 6 6

1 15 2

3 16 2

2 16 2

【樣例輸出】

1【樣例解釋】

6 時刻時,1 號店優先順序降到 3,被移除出優先快取;2 號店優先順序公升到 6, 加入優先快取。所以是有 1 家店 (2 號) 在優先快取中。

【評測用例規模與約定】

對於 80% 的評測用例,1≤ n,m,t ≤10000。 對於所有評測用例,1≤ n,m,t ≤100000,1≤ts≤t,1≤id ≤ n。

題解:題目中規定外賣店的初始優先順序為0,所以我們可以用乙個陣列來儲存外賣店的優先順序。再看樣例輸入,ts和id組成的資料明顯為乙個m行2列的二維陣列,所以我們可以用乙個int型別的二維陣列來儲存訂單。外賣點優先順序是根據時間順序來加減,注意好臨界值0的問題這道題還是比較簡單的。

public static void main(string args) 

} //no為店鋪編號-1

for (int no = 0; no < n; no++)

}//對i時刻的店鋪優先順序進行加減

if (temp>0)

//限制最低優先順序

else if(temp==0&&level[no]>1)

} }int count=0;

for (int score : level)

} system.out.println(count);

}

第十屆藍橋杯c組

求和 1905111 這裡的string npos可以使用 1代替 include include using namespace std intmain cout 矩形切割 21 include include using namespace std intmain cout 年號字元 byq i...

第十屆藍橋杯A組(C C 組) 外賣店優先順序

這道題還是列舉的思路,另外還運用到了vector容器。就是按時間乙個乙個出訂單,沒出乙個判斷一次,判斷此刻店的狀態。把問題劃分為一家一家店的小問題。include include includeusing namespace std const int maxm 100000 vectora max...

第十屆藍橋杯A組C C 試題D迷宮

題目 下圖給出了乙個迷宮的平面圖,其中標記為 1 的為障礙,標記為 0 的為可 以通行的地方。010000 000100 001001 110000 迷宮的入口為左上角,出口為右下角,在迷宮中,只能從乙個位置走到這 個它的上 下 左 右四個方向之一。對於上面的迷宮,從入口開始,可以按drrurrdd...