資料型別 必須要是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...