中級
彗星撞擊
題目連結
思路
模擬並逐格更新。初始化 v 為大小 n×m、每格值為 x,並用 have 標記先給定的目標格。對每一個操作(程式中第二個 k 讀入的那批查詢,參數為 a,b,s,d),計算正方形區域
$$i\in\left[a-\frac{s-1}{2},a+\frac{s-1}{2}\right],\qquad
j\in\left[b-\frac{s-1}{2},b+\frac{s-1}{2}\right],
$$(程式以 0-based 索引,遇到超出邊界的 $(i,j)$ 則跳過)。對這個區域做一次掃描:若存在任一格 have[i][j] == 1,則將該區域內所有
2025-09-081.2k 字6 分鐘
APCS 2025/06 解題紀錄(C++)
小心陷阱
題目連結
思路
採直接模擬並嚴格遵循「先移動、後扣血」。初始化 now = k 表示從位置 0 以步長 k 跳到第一個落點;在 while (k > 0) 的每輪,先依 now 是否分別為 x1、x2 的倍數扣除 y1、y2(可同時扣),若仍 k>0,則續行 now += k 進入下一輪。形式化遞推為
$$\text{now}_t=\text{now}_{t-1}+k_{t-1},\qquad
k_t = k_{t-1}-y_1\,[x_1\mid \text{now}_t]-y_2\,[x_2\mid \text{now}_t],
$$當 $k_