# **APCS Jun 2024 - o077 [Q2](https://zerojudge.tw/ShowProblem?problemid=o077) [Python]** > **本題敘述:** > >有一個 H x W 的電子畫布,一開始數值都是 0 代表未填色,接下來請模擬 N 次畫筆操作。 > > 每次畫筆操作為選一個座標 (r,c) 停留 t 秒,他會將曼哈頓距離 <= t 區塊染上 x 顏色。若有多個顏色重複填到相同區塊,顏色的數值會加起來。 > > 請輸出 N 次操作後的畫布狀態。 ```python= H,W,N = map(int,input().split()) a = [[0 for _ in range(W)] for _ in range(H)] for _ in range(N): r,c,time,num = map(int,input().split()) for rr in range(r - time,r + time + 1): for cc in range(c - time , c + time +1): if 0 <= rr < H and 0 <= cc < W and abs(rr - r)+ abs(cc-c) <= time: # 曼哈頓距離公式 a[rr][cc] += num for i in a: for j in i: print(j,end=' ') print('\n', end='') ``` --- ### 本題重點: 1. **曼哈頓距離**: - 曼哈頓距離是一種距離度量方式,定義為在一個正交網格上,兩個點之間的距離為它們在水平方向和垂直方向上的距離之和。例如,兩個點 `(r, c)` 和 `(rr, cc)` 之間的曼哈頓距離計算公式為: * `D = |rr - r| + |cc - c|` **本題知識:** * **模擬?** --- - [✔️] 程式碼如果需要可以直接使用。 - [✔️] 分享貼文請標註來源。 ![image](https://hackmd.io/_uploads/ryXztN3SA.png)