F - Tree Disassembly
解説
/
実行時間制限: 2 sec / メモリ制限: 256 MB
配点 : 100 点
問題文
クリスマスツリーを持った青いうさぎと赤いうなぎがぶつかってしまい、二つのツリーがこんがらがってしまいました。
N 頂点からなるグラフが与えられます。 頂点には 1 〜 N の番号がつけられています。 辺は N*2-2 本あり、i 番目の辺は頂点 A_i と頂点 B_i を繋いでいます。
このグラフの辺を赤と青に塗り分ける方法であって、赤い辺のみからなるグラフも青い辺のみからなるグラフも木になるようなものは何通りあるでしょうか?
答えは非常に大きくなることがあるので、10^9+7 で割ったあまりを求めてください。
制約
- 4 \leq N \leq 104
- 1 \leq A_i,B_i \leq N
- 自己ループや多重辺は存在しない
- 問題文中の条件を満たす塗り分け方が少なくとも 1 通り以上存在する
採点
テストケースは 01.txt
〜 10.txt
の 10 個あり、テストケースに 1 つ正解するごとに 10 点が与えられます。
この問題ではテストケースが公開されており、こちらからダウンロードすることができます。
入力
入力は以下の形式で標準入力から与えられる。
N A_1 B_1 A_2 B_2 : A_{N*2-2} B_{N*2-2}
出力
答えを 10^9+7 で割った余りを出力せよ。
入力例 1
4 1 2 1 3 1 4 2 3 2 4 4 3
出力例 1
12
このケースでは以下の 12 通りの塗り分け方があります。
図:塗り分け方の一覧