此題和"小明上學"題幹類似,不過我們需要模擬時間的流動來**小明到達紅綠燈時紅綠燈的狀態。思路詳解這裡我們增加了乙個eclipse()函式來實現,實際上類似於狀態機。
把紅綠燈的狀態看成是《顏色k,剩餘秒數t>,經過的時間是各個狀態之間的轉化邊,那麼我們可以描述一下紅綠燈的有限狀態機:
初始狀態為《紅燈,30秒》,經過30秒後狀態將變成《綠燈,g秒》,其中g是綠燈的總時長;本題中我們已知紅綠燈的初始狀態和經過的秒數, 只要根據狀態機一步一步推理,則我們能夠得到最後的狀態.再經過g秒,狀態將變為《黃燈,y秒》 ;
此時如果經過了5秒,而5秒不足以讓黃燈變成紅燈,即5《黃燈,(y-5)秒》;
c++11滿分**
#include using namespace std;
int k, t;
long long total = 0; // 當n=10^5時,結果的數量級可能會達到10^5*10^6
int r, y, g, n;
/* 模擬時間的流動 */
void eclipse()
if (k == 1) // red
else if (k == 2) // yellow
else if (k == 3) // green
}}int main()
}cout << total;
return 0;
}
CCF 201812 2 小明放學
題目大意 這題和第一題的區別在於,小明事先得知路況 路口通過時間和交通燈資料 走之前 估算走多少時間,不再是第一題那樣走多少記多少。思路 由於沒有親自去走,所以需要模擬人去走,得到走的總時間,遇到路口就加時間,遇到交通燈的時候,通過總時間和交通燈在出發時的情況,推算出現在交通燈情況,用現在的交通燈情...
CCF 201812 2小明放學
試題編號 201812 2 試題名稱 小明放學 時間限制 1.0s 記憶體限制 512.0mb 問題描述 題目背景 漢東省政法大學附屬中學所在的光明區最近實施了名為 智慧型光明 的智慧型城市專案。具體到交通領域,通過 智慧型光明 終端,可以看到光明區所有紅綠燈此時此刻的狀態。小明的學校也安裝了 智慧...
CCF 201812 2小明放學
題目背景 漢東省政法大學附屬中學所在的光明區最近實施了名為 智慧型光明 的智慧型城市專案。具體到交通領域,通過 智慧型光明 終端,可以看到光明區所有紅綠燈此時此刻的狀態。小明的學校也安裝了 智慧型光明 終端,小明想利用這個終端給出的資訊,估算自己放學回到家的時間。問題描述 一次放學的時候,小明已經規...