小明放學 CCFCSP認證題目

2021-09-16 13:29:26 字數 2168 閱讀 1736

漢東省政法大學附屬中學所在的光明區最近實施了名為「智慧型光明」的智慧型城市專案。具體到交通領域,通過「智慧型光明」終端,可以看到光明區所有紅綠燈此時此刻的狀態。小明的學校也安裝了「智慧型光明」終端,小明想利用這個終端給出的資訊,估算自己放學回到家的時間。

一次放學的時候,小明已經規劃好了自己回家的路線,並且能夠**經過各個路段的時間。同時,小明通過學校裡安裝的「智慧型光明」終端,看到了出發時刻路上經過的所有紅綠燈的指示狀態。請幫忙計算小明此次回家所需要的時間。

輸入的第一行包含空格分隔的三個正整數 r、y、g,表示紅綠燈的設定。這三個數均不超過 1e6。

輸入的第二行包含乙個正整數 n,表示小明總共經過的道路段數和路過的紅綠燈數目。

接下來的 n 行,每行包含空格分隔的兩個整數 k、t。k=0 表示經過了一段道路,將會耗時 t 秒,此處 t 不超過 1e6;k=1、2、3 時,分別表示出發時刻,此處的紅綠燈狀態是紅燈、黃燈、綠燈,且倒計時顯示牌上顯示的數字是 t,此處 t 分別不會超過 r、y、g。

輸出乙個數字,表示此次小明放學回家所用的時間。

30 3 30

80 10

1 50 11

2 20 6

0 33 10

0 3

小明先經過第一段路,用時 10 秒。第一盞紅綠燈出發時是紅燈,還剩 5 秒;小明到達路口時,這個紅綠燈已經變為綠燈,不用等待直接通過。接下來經過第二段路,用時 11 秒。第二盞紅綠燈出發時是黃燈,還剩兩秒;小明到達路口時,這個紅綠燈已經變為紅燈,還剩 11 秒。接下來經過第

三、第四段路,用時 9 秒。第三盞紅綠燈出發時是綠燈,還剩 10 秒;小明到達路口時,這個紅綠燈已經變為紅燈,還剩兩秒。接下來經過最後一段路,用時 3 秒。共計 10+11+11+9+2+3 = 46 秒。

評測用例規模與約定

有些測試點具有特殊的性質:

* 前 2 個測試點中不存在任何訊號燈。

測試點的輸入資料規模:

* 前 6 個測試點保證 n ≤ 1e3。

* 所有測試點保證 n ≤ 1e5。

首先我們必須用弄懂題目的意思。每個t,只是出發時刻路上經過的所有紅綠燈的指示狀態,僅僅是出發時刻,也就是說,當小明具體到達路上看到的紅綠燈的剩餘時間,並不一定是t,紅綠燈一直在根據小明走的時間,按照紅、綠、黃的順序在變化,這個題目的關鍵也就是:算出小明到達某個路口看到紅綠燈在這個時刻的剩餘時間。

我的思路:先讓 time(小明走的時間) 和 紅燈綠燈黃燈之和進行取模,這樣就可以將紅綠黃這樣完整的幾輪給約去,然後用t(出發時刻路上經過的所有紅綠燈的指示狀態)和 time 進行相減 ,此結果的絕對值 一定小於 紅燈綠燈黃燈之和,然後在這一輪具體情況具體分析得出答案。

必須注意: int 最大也就 1e9 ,但是按照題目要求,t 不超過 1e6。 n ≤ 1e5 。t*n=1e11 超出 int 範圍 ,所以time必須使用 long long型別。

#includeusing namespace std;

int main()

else if(z>0)

else if(z<0&&z+g>0)

else if(z+g<=0&&z+g+y>0)

else if(z+g+y<=0&&z+g+y+r>0)

break;

case 2: //黃燈

cin>>t;

u=time%(r+g+y);

z=t-u;

if(z==0)

else if(z>0)

else if(z<0&&z+r>0)

else if(z+r<=0&&z+r+g>0)

else if(z+r+g<=0&&z+r+g+y>0)

break;

case 3: //綠燈

cin>>t;

u=time%(r+g+y);

z=t-u;

if(z==0)

else if(z>0)

else if(z<0&&z+y>0)

else if(z+y<=0&&z+y+r>0)

else if(z+y+r<=0&&z+y+r+g>0)

break;

} }cout

}

CCF CSP201812 2 小明放學

題目鏈結 問題描述 試題編號 201812 2 試題名稱 小明放學 時間限制 1.0s 記憶體限制 512.0mb 問題描述 題目背景 漢東省政法大學附屬中學所在的光明區最近實施了名為 智慧型光明 的智慧型城市專案。具體到交通領域,通過 智慧型光明 終端,可以看到光明區所有紅綠燈此時此刻的狀態。小明...

CCFCSP2018 12 2小明放學

題目背景 漢東省政法大學附屬中學所在的光明區最近實施了名為 智慧型光明 的智慧型城市專案。具體到交通領域,通過 智慧型光明 終端,可以看到光明區所有紅綠燈此時此刻的狀態。小明的學校也安裝了 智慧型光明 終端,小明想利用這個終端給出的資訊,估算自己放學回到家的時間。問題描述 一次放學的時候,小明已經規...

ccf csp 201812 2 小明放學

試題編號 201812 2 試題名稱 小明放學 時間限制 1.0s 記憶體限制 512.0mb 問題描述 題目背景 漢東省政法大學附屬中學所在的光明區最近實施了名為 智慧型光明 的智慧型城市專案。具體到交通領域,通過 智慧型光明 終端,可以看到光明區所有紅綠燈此時此刻的狀態。小明的學校也安裝了 智慧...