CCF 201812 2 小明放學

2021-10-02 12:10:59 字數 828 閱讀 7439

此題和"小明上學"題幹類似,不過我們需要模擬時間的流動來**小明到達紅綠燈時紅綠燈的狀態。

這裡我們增加了乙個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小明放學

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