主要要注意以下幾個點:
1.紅綠黃燈的編號和出現順序,容易繞暈了。。。
2.通過取餘來解決當到達當前位置時,會不會已經經過幾輪紅綠燈的問題。(我之前只是想著可以設定(r+g+y)*n,然後判斷n的次數。還是做題做少了)
3.需要考慮,燈剩餘的時間t和現在總共花的時間sum之間。如果t>=sum的話,即到了紅綠燈的位置,依舊還是原來的狀態,那麼對於黃燈和紅燈,是需要等完目前的時間(那麼總時間就是當前紅黃燈結束的時間)。t4.將紅綠黃看成乙個整體,而判斷當前情況下在哪乙個狀態,可以看成乙個座標軸比較好理解,以下是乙個舉例。
(這也就是舉例題中給出的例子,輸入1 5:當遇到紅燈時,出發時還剩5秒,那麼就從紅燈軸還剩5秒的位置,走上之前的sum值,判斷現在在哪個位置,根據座標軸可以看出此時需要計算在哪個狀態需要用30-t+sum=35,根據座標軸此時就在綠燈位置;
輸入2 2:當遇到黃燈時,出發時還剩2秒,那麼就從黃燈軸還剩2秒的位置,走上之前的sum值,判斷現在在哪個位置,根據座標軸可以看出此時需要計算在哪個狀態需要用3-t+sum=22,根據座標軸此時就在紅燈位置,需要等待的時間呢,就是黃燈+紅燈-當前在軸上的位置=11)
注意遇到紅綠黃燈時,座標軸是不一樣的噢,我們把從遇到某個燈開始之後的一輪看成乙個軸。
這是我根據這種思路寫的**:
#includeusing
namespace
std;
intmain()
else
if(k==1)
else
else
if(t>r+g) }}
else
if(k==2)
else}}
else
if(k==3)
else
else}}
}cout
return0;
}
CCF 2018 12 02 小明放學
題目背景 漢東省政法大學附屬中學所在的光明區最近實施了名為 智慧型光明 的智慧型城市專案。具體到交通領域,通過 智慧型光明 終端,可以看到光明區所有紅綠燈此時此刻的狀態。小明的學校也安裝了 智慧型光明 終端,小明想利用這個終端給出的資訊,估算自己放學回到家的時間。問題描述 一次放學的時候,小明已經規...
2018 12 02 小明放學
試題編號 201812 2 試題名稱 小明放學 時間限制 1.0s 記憶體限制 512.0mb 問題描述 題目背景 漢東省政法大學附屬中學所在的光明區最近實施了名為 智慧型光明 的智慧型城市專案。具體到交通領域,通過 智慧型光明 終端,可以看到光明區所有紅綠燈此時此刻的狀態。小明的學校也安裝了 智慧...
CCF 小明放學 小明上學
題目背景 小明是漢東省政法大學附屬中學的一名學生,他每天都要騎自行車往返於家和學校。為了能盡可能充足地睡眠,他希望能夠預計自己上學所需要的時間。他上學需要經過數段道路,相鄰兩段道路之間設有至多一盞紅綠燈。京州市的紅綠燈是這樣工作的 每盞紅綠燈有紅 黃 綠三盞燈和乙個能夠顯示倒計時的顯示牌。假設紅綠燈...