CSP 2023年12月第2題 小明放學

2021-09-26 22:48:50 字數 1136 閱讀 3790

資料型別 必須要是long long型別

所有測試點保證 n ≤ 10^5 可能出現的最大的數為10^ 6 * 10^ 5 = 10^11

int型最大表示的數是2147483647=2*10^9

long long最大儲存範圍是10^18

燈光的順序紅 -> 綠 -> 黃

k = 1 紅 k = 2 黃 k = 3 綠

這個對應順序有點不一樣,因此一定要清楚知道不同的k之後燈的變化情況

#include

using namespace std;

int r,y,g;

int n;

int k;

int t;

long

long time =0;

int temp =0;

intmain()

else

if(k==2)

//黃燈

else

if(k==3)

n--;}

cout

}

相較於第一題 只需簡單分情況即可順利解決問題

但是這題需要判斷 經過前面的時間後,現在對應的燈光情況

temp = time %

(r+y+g)

;

通過 這個來判斷現在相較於乙個迴圈,現在的時間

然後通過這個時間來接著判斷與 需要等待時間 t之間的關係

舉例:k==2 且 temp>t+r+g && temp表示出發時為黃燈,然後 temp的 時間是大於 本來需要等待的時間 t 和經過乙個紅燈綠燈 的時間

但是又小於 乙個整個週期,於是 到達下乙個燈光變化(變化為 紅燈)

需要等待 t+r+g+y - temp 的時間

並且 下面是紅燈 因此還要等待 r 時間

因此最後時間為 time +=t+r+g+y-temp + r;

CSP 2023年9月第2題 買菜

這題的重點 就是要清楚地分析 兩個時間段之間的對應關係 要清晰的分析出 相交 包含 相離的情況 需要我們在紙上畫圖,這樣比較好分析 其次 要建立結構體陣列 從而來存放讀入的資料 還有就是 結果感覺 大概是10 9 的樣子,因此 把設定為 long long 型別 下面是 原始碼 include us...

CSP 2023年9月 買菜

我的csp 倉庫 由於時間都是正數而且資料規模並不大,所以可以使用陣列表示時間線,所以只需要建立兩個人的時間線陣列,將所有裝車時間區間置為1,其他為0 最後只需要一遍遍歷,兩個都為1的,就是在聊天的時間了 include include include define local using name...

CSP 2023年12月 資料中心

一道很簡單的模板題,先求出該圖的最小生成樹 然後以root為根節點每一層向下遍歷即可 按層向下遍歷需要小心,這裡使用的是鄰接表,生成最小生成樹的時候 是將其看為無向圖,而現在是樹,從上往下意味著只能是單向傳輸 處理好這一點就沒有什麼問題了 用的是乙個set存mst的各個點,只要遍歷過就將其剝離 in...