DFS

AGC014C: Closed Rooms

DFS

https://agc014.contest.atcoder.jp/tasks/agc014_c結局1回目は開いているところをK回移動、2回目以降は壁を壊しながらK回移動と言い換えられます。 なので2回目以降は4方向のうち一番近い場外へ直線で行くのが最適です。変数がsx,x,nxと結構出てきてしまっ…

AGC010E: Rearranging

https://beta.atcoder.jp/contests/agc010/tasks/agc010_eO(N^4)からの高速化が思いつかなかった…。まずAiを頂点としたグラフを考えて、互いに素ではない頂点同士をつなげます。すると各連結成分で一番小さい要素をcとしてcのうち最大のものを取るのが最適だ…

CODE FESTIVAL 2017 qual B,E: Popping Balls

http://code-festival-2017-qualb.contest.atcoder.jp/tasks/code_festival_2017_qualb_e赤のボールがA,青のボールがB個の状態から選ぶ方法の数を再帰的に求めます。これを(A, B)と定義しておきましょう。 赤を選ぶ場合単に(A-1,B)とすればいいです。青を選…

CF434D: Wizard's Tour

http://codeforces.com/contest/860/problem/D解いたあとだとめっちゃ自明に見えるけどかなり苦労した。dfs木を作った後、2辺ずつ木の下からとっていく。 ある点vを中間の点としたpathがとれるときはとる。 取れない場合はvの親pに向かう辺(v,p)を残す。 そ…