小明上學(201812-1/CCF)———附帶思路和完整程式碼
0 效果
難點:仔細讀題
1 題目
題目背景
小明是漢東省政法大學附屬中學的一名學生,他每天都要騎自行車往返於家和學校。為了能儘可能充足地睡眠,他希望能夠預計自己上學所需要的時間。他上學需要經過數段道路,相鄰兩段道路之間設有至多一盞紅綠燈。
京州市的紅綠燈是這樣工作的:每盞紅綠燈有紅、黃、綠三盞燈和一個能夠顯示倒數計時的顯示牌。假設紅綠燈被設定為紅燈 r 秒,黃燈 y 秒,綠燈 g 秒,那麼從 0 時刻起,[0,r) 秒內亮紅燈,車輛不許通過;[r, r+g) 秒內亮綠燈,車輛允許通過;[r+g, r+g+y) 秒內亮黃燈,車輛不許通過,然後依次迴圈。倒數計時的顯示牌上顯示的數字 l(l > 0)是指距離下一次訊號燈變化的秒數。
問題描述
一次上學的路上,小明記錄下了經過每段路的時間,和各個紅綠燈在小明到達路口時的顏色和倒數計時秒數。希望你幫忙計算此次小明上學所用的時間。
輸入格式
輸入的第一行包含空格分隔的三個正整數 r、y、g,表示紅綠燈的設定。這三個數均不超過 106。
輸入的第二行包含一個正整數 n(n ≤ 100),表示小明總共經過的道路段數和看到的紅綠燈數目。
接下來的 n 行,每行包含空格分隔的兩個整數 k、t。k=0 表示經過了一段道路,耗時 t 秒,此處 t 不超過 106;k=1、2、3 時,分別表示看到了一個紅燈、黃燈、綠燈,且倒數計時顯示牌上顯示的數字是 t,此處 t 分別不會超過 r、y、g。
輸出格式
輸出一個數字,表示此次小明上學所用的時間。
樣例輸入
30 3 30
8
0 10
1 5
0 11
2 2
0 6
0 3
3 10
0 3
樣例輸出
70
樣例說明
小明先經過第一段道路,用時 10 秒,然後等待 5 秒的紅燈,再經過第二段道路,用時 11 秒,然後等待 2 秒的黃燈和 30 秒的紅燈,再經過第三段、第四段道路,分別用時6、3秒,然後通過綠燈,再經過最後一段道路,用時 3 秒。共計 10 + 5 + 11 + 2 + 30 + 6 + 3 + 3=70 秒。
評測用例規模與約定
測試點 1, 2 中不存在任何訊號燈。
測試點 3, 4 中所有的訊號燈在被觀察時均為綠燈。
測試點 5, 6 中所有的訊號燈在被觀察時均為紅燈。
測試點 7, 8 中所有的訊號燈在被觀察時均為黃燈。
測試點 9, 10 中將出現各種可能的情況。
2 思路
- 當k==0或者1【紅燈路口】時,通過所用時間為t;
- 當k == 2【黃燈】時,通過所用時間為t + r(因為還需要額外等待一個紅燈);
- 當k==3【綠燈】時,通過不需要花費時間
3 程式碼
#include<cstdio>
int main(){
int r, y, g, n, k, t, ans =0;
scanf("%d%d%d", &r, &y, &g);
scanf("%d", &n);
while(n--){
scanf("%d%d", &k, &t);
if(k == 0 || k == 1){//紅燈或者路口
ans += t;
}else if(k == 2){//黃燈時,還需要額外等待一個紅燈
ans += (t + r);
}
}
printf("%d", ans);
return 0;
}
相關文章
- 檔案合併新思路(附完整DELPHI程式碼) (轉)
- JPG學習筆記1(附完整程式碼)筆記
- JPG學習筆記2(附完整程式碼)筆記
- JPG學習筆記3(附完整程式碼)筆記
- 《TensorFlow 機器學習方案手冊》(附 pdf 和完整程式碼)機器學習
- Booom參賽作品《00後的小明》創作思路OOM
- 如何用LSTMs做預測?(附程式碼)| 博士帶你學LSTM
- WebRTC 音訊演算法 附完整C程式碼Web音訊演算法C程式
- 磨皮美顏演算法 附完整C程式碼演算法C程式
- 圖的鄰接表演算法---(附完整程式碼)演算法
- Canvas實現放大鏡效果完整案例分析(附程式碼)Canvas
- 貝葉斯線性迴歸簡介(附完整程式碼)
- javaSE編寫的網上學生選課系統專案完整程式碼下載Java
- 最後一期:如何更新LSTM模型?(附程式碼)| 博士帶你學LSTM模型
- 深度學習趣談:什麼是遷移學習?(附帶Tensorflow程式碼實現)深度學習遷移學習
- 帶你用深度學習虛擬機器進行文字遷移學習(附程式碼)深度學習虛擬機遷移學習
- 生成商品海報,附帶小程式二維碼
- 程式設計師小明面試篇程式設計師面試
- 【貪心法】奇數陣列 思路解析和程式碼陣列
- 【前端Vue】Vue從0基礎完整教程第3篇:面經PC端-element (上)【附程式碼文件】前端Vue
- 【模擬】Carla之收集資料快速教程 (附完整程式碼) [7]
- 看完讓你徹底理解 WebSocket 原理,附完整的實戰程式碼(包含前端和後端)Web前端後端
- 利用深度學習和機器學習預測股票市場(附程式碼)深度學習機器學習
- 一文帶你入門圖論和網路分析(附Python程式碼)圖論Python
- 如何從零開始用PyTorch實現Chatbot?(附完整程式碼)PyTorch
- 音訊演算法之小黃人變聲 附完整C程式碼音訊演算法C程式
- Python實戰-貴州茅臺和華能信託股權穿透研究(附完整程式碼)Python穿透
- Redux 原始碼深度解析(附帶視訊1月14號上傳)Redux原始碼
- 世界上最短的DVD解碼程式(附原始碼) (轉)原始碼
- 用 PGP 保護程式碼完整性(六):在 Git 上使用 PGPGit
- 棧的應用場景思路分析和程式碼實現
- Java打飛機小遊戲(附完整原始碼)Java遊戲原始碼
- checkbox全選和取消全選完整程式碼例項
- 【演算法】手撕紅黑樹(上)—— 基本性質以及插入實現(附帶程式碼實現)演算法
- 帶上《與孩子一起學程式設計》回家過年!程式設計
- Airbnb JavaScript程式碼規範(完整)AIJavaScript
- 智慧城市同城小程式程式 附帶前端程式前端
- 史上最詳細的IDEA優雅整合Maven+SSM框架(詳細思路+附帶原始碼)IdeaMavenSSM框架原始碼