Official
D - Loong and Takahashi Editorial by kyopro_friends
外周から順に渦巻き状に値を埋めていくことで、\(N\) の値によらず構築できます。この方針に従ったとき、各マスに入る数を求めることを考えます。
例 \((N=7)\)
1 2 3 4 5 6 7
24 25 26 27 28 29 8
23 40 41 42 43 30 9
22 39 48 T 44 31 10
21 38 47 46 45 32 11
20 37 36 35 34 33 12
19 18 17 16 15 14 13
実装方法としては、例えば次のようなものが考えられます。
- 空のグリッドを用意する
- 左上のマスに \(1\) を入れ、現在地を左上のマス、進行方向を右向きとする
- 全てのマスが埋まるまで以下を繰り返す
- 進行方向正面のマスが空なら、そのマスに移動し、次の数を入れる
- そうでないなら、進行方向を時計回りに90度変える
おまけ:
\(N=45\) のとき、数を入れるマスは \(45^2-1=2024\) 個あります。Happy New Year!
posted:
last update: