ABC010を解いてみた
A問題
入力と"pp"を連結して出力しました。
B問題
疑似Do-Whileループで2nでも3n+2でもなくなるまで-1していきました。-1した回数を数えてその回数を出力しました。
C問題
n個の家に対して全探索を行い、それぞれの家に寄ってから移動が終了するまでの距離と移動可能な距離の大小から寄り道ができるかどうかを判定しました。計算量はO(n)でn <= 10^3なので全探索でも実行可能だと判断しました。
D問題
全探索で部分点を取れ、最小カット最大フロー定理を利用することで満点を取れる。(by解説)
全探索はitertools.permutations()を使って全ての組み合わせを列挙し、その組み合わせでマークされている女の子に到達できる人数を幅優先探索で求めて一番少なくなるパターンを出力すればできそう。
NetworkXってライブラリに最小カット最大フロー定理の関数があるらしい。
ネットワークフロー — 読書ノート v1.4.0dev
雑感
ABCはすぐに解けました。D問題見てグラフとかネットワークフローについても勉強しないとと感じました。