APCS Jun 2024 - o077 Q2 [Python]
問題文:
H × W の電子キャンバスは、初めは全て0(未着色)です。N 回のブラシ操作をシミュレーションしてください。各操作では座標 (r, c) に t 秒間とどまり、マンハッタン距離が t 以下の全マスを色 x で塗ります。同じマスを複数回塗ると、色の値が加算されます。N 回の操作後の状態を出力してください。
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='')
ポイント
- マンハッタン距離: 直交する格子上で、2点間の水平方向と垂直方向の距離を足したものです。
(r, c)と(rr, cc)の場合、式は次のとおりです。D = |rr - r| + |cc - c|
この問題で使う知識:
- シミュレーション?
- [✔️] 必要であればコードをそのまま使用できます。
- [✔️] 共有する際は出典を明記してください。

この記事は繁体字中国語の原文をAIで翻訳したものです。意味や表現に違いがある可能性があります。正確な内容は繁体字中国語の原文をご確認ください。