備忘録代わりに精進記録を載せていくつもりです。番目に戻ってくるサイズが最小の閉路について、問題の条件を満たしているかどうか調べる、というものです。ついて調べ、存在すればそれを答えればよいです。与えられたグラフの中で、最小のサイズの閉路を見つけると、それが問題の条件を満たすグラフになるからです。問題の条件を満たす閉路が1つあったとします。そこに、辺を1つ追加すると、その閉路は問題の条件を満たさなくなってしまいます。その閉路についてよく見ると、追加した辺を上手く使うことで、問題の条件を満たすような閉路が必ずどこかに存在しています。黄色と青の辺からなる、問題の条件を満たす閉路が存在したときに、橙の辺を追加したとしても、黄色+橙の辺と、それにつながってる頂点のみを選ぶことで再び問題の条件を満たす閉路が完成します。して完成した閉路に、適当な頂点と辺を追加したものが問題で入力されるグラフになるので、この一番小さい閉路を探せばよいことになります。それは上記の方法で求めることができます。具体的には、閉路を探すパートについてはBFSとその復元(1つ前に通った頂点をメモしておく)を行い、問題の条件を満たすかどうか検査するパートでは、選んだ閉路につながっている辺についてチェックし、どこかで出次数か入次数が2以上になっている頂点が存在しないか見ればよいです。上手い実装方法がわからなかったのでこうなりましたが、バグなくかけたのでまぁ良かったです。燃やす埋める問題の応用です。(1)注目記事はてなブログをはじめよう!emtubasaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。