ツバサの備忘録

主に備忘録代わりに精進記録を載せていくつもりです。

AGC027 C - ABland Yard

問題
提出コード
なんか最近すごい似た問題を見たような…(前日の練習会でこの問題を解いていました)
ある頂点から、AとBが書かれている頂点どちらか片方にしかいけなくなった時点でその頂点を消してしまいます。
これを繰り返していき、頂点が残っていればYes、残らなければNoになります。
これの実装方法として、幅優先探索があります。
入力の時点で、ある頂点につながっている別の頂点で、Aの文字であるものとBであるものを別にカウントしておきます。
次に、最初の入力直後に即消す頂点をスタックにいれます。
その後はキューから取り出した頂点について、その頂点とつながっている全ての頂点について、まだ消えずに残っていれば最初に記録したカウントを減らしていきます。そのカウントが0になったら、その頂点も消すことができるようになるので、新たにキューに格納します。
これを、全てのキューが空になるまで繰り返します。最後に、全ての頂点が消えたならNo、残っていればYesを出力して終わりです。
Bに気を取られていたのもありますが結構考えたのにも関わらず考察が全く進んでいなかったので少し悔しいです(900点なので仕方がないといえば仕方がないのですが…)。