日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ccf-csp #201812-2 小明放学 (100分 附解析)

發布時間:2025/3/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ccf-csp #201812-2 小明放学 (100分 附解析) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2021.11.26更新,第17行代碼判斷條件修正
2019.12.14更新,坑點加一(最終答案需要用long long存儲)


題目鏈接:http://118.190.20.162/view.page?gpid=T81

題目分析

  • 算是一道模擬題吧,題目的核心在于求遇到交通的時刻,交通燈處于什么樣的狀態,以及根據交通燈的狀態得出需要等待的時間。遇到這類問題,推薦在草稿紙上畫圖,理清楚思路再碼。
  • 我們需要明確,交通燈的狀態是循環的,而循環的周期就是(r+y+g)(r+y+g)(r+y+g),所以求解時可以將經過的時間段對周期取模
  • 根據交通燈的變化的時間將分成區間[0,t),[t,t+g),[t+g,t+g+y),[t+g+y,g+y+r)[0,t),[t,t+g),[t+g,t+g+y),[t+g+y,g+y+r)[0,t),[t,t+g),[t+g,t+g+y),[t+g+y,g+y+r),看取余得到的時間落在哪個區間就可以知道交通燈狀態了。(注意不要忽略第四個區間

坑點:
題目沒寫明什么時候該走什么時候該等(吐槽 )

  • 紅燈:等到綠燈即可通行
  • 綠燈:直接通行
  • 黃燈:黃燈等完后還要等到紅燈結束才能通行
  • 以及最終的答案需要用long long存儲(看題目數據范圍的時候,就應該提前分析好用什么類型存儲了

    代碼如下

    #include <iostream> #include <cstdio> #include <cstring> #include <algorithm>using namespace std; const int maxn = 1e5 + 10; int r, y, g, n, k, t; long long ans; int getTime(int type, int t, int total) {//根據交通燈的初始狀態進行分類討論if (type == 1) {t = total - t;//根據最后時間段落在哪個區間進行分類討論if (t < 0) return -t; //最終為紅燈else if (t < g) return 0; //最終為綠燈else return t < (g + y) ? (y - (t - g)) + r : (r + g + y - t); //最終為黃燈或紅燈} else if (type == 2) {t = total - t;if (t < 0) return r - t;else if (t < r) return r - t;else return t < (r + g) ? 0 : (r + g + y - t) + r;} else if (type == 3) {t = total - t;if (t < 0) return 0;else if (t < y) return y - t + r;else return t < (y + r) ? r - (t - y) : 0;} else {return t;} }int main() { // freopen("1.in", "r" ,stdin);scanf("%d%d%d", &r, &y, &g);scanf("%d", &n);for (int i = 1; i <= n; i++) {scanf("%d%d", &k, &t);ans += getTime(k, t, ans % (r + y + g));}printf("%lld\n", ans);return 0; }

    最后再附上一組幫我找到bug的數據:

    input: 30 3 30 8 0 50 1 20 0 11 2 2 0 50 0 25 3 10 0 3outpu: 173

    總結

    以上是生活随笔為你收集整理的ccf-csp #201812-2 小明放学 (100分 附解析)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。