競技プログラミングのためのF#入門
GitHub上の対応ディレクトリ 公式ページ 公式解説 解説
アルゴリズムを考えるのが大変なだけで, 公式解説通りに素直に実装すればよいでしょう.
F#の文字列連結は単純な+
でよく, 連続した文字からなる文字列はString.init (W-A) (fun _ -> "1")
で作れます. List.iter
やfor
文で順次stdout.WriteLine
しても構いません. あえて文字列のリスト(や配列)を作りたければ, 例えば次のような形でB
行とH-B
行分の文字列を生成すればいいでしょう.
| let solve H W A B =
List.init B (fun _ -> String.init A (fun _ -> "0") + String.init (W-A) (fun _ -> "1"))
@ List.init (H-B) (fun _ -> String.init A (fun _ -> "1") + String.init (W-A) (fun _ -> "0"))
|
F#でのリストの連結はList.append
または@
演算子です.
TODO
- 配列やシーケンスにしたときどれだけ速度が変わるか?
Previous: 076 C - たくさんの数式 Next: 078 C K-th Substring back to top