atcoder#ABC222E. [ABC222E] Red and Blue Tree
[ABC222E] Red and Blue Tree
题目描述
頂点の木と、長さ の数列 、整数 が与えられます。
木の頂点には から の番号がつけられており、 番目の辺は頂点 と を結んでいます。
この木の 個の辺をそれぞれ赤か青のどちらかに塗ります。そのような方法は 通りありますが、そのうち次の条件を満たすような塗り方の個数を で割った余りを求めてください。
条件:
最初、駒を頂点 におく。 の順に、駒を頂点 から頂点 まで、辺をたどって最短経路で動かす。 これらの操作を最後まで行ったとき、赤く塗られた辺を通過した回数を 、青く塗られた辺を通過した回数を とすると、 である。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
答えを出力せよ。
题目大意
给出个点的树和长度为的序列。现需要给每条边染成红色(red)或者蓝色(blue),要求按照走的路径,经过的边数,问方案数。
4 5 0
2 3 2 1 4
1 2
2 3
3 4
2
3 10 10000
1 2 1 2 1 2 2 1 1 2
1 2
1 3
0
10 2 -1
1 10
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
126
5 8 -1
1 4 1 4 2 1 3 5
1 2
4 1
3 1
1 5
2
提示
制約
- 与えられるグラフは木である
- 入力に含まれる値は全て整数である
Sample Explanation 1
番目の辺を赤く、 番目の辺を青く塗ったとき、 - 頂点 から頂点 への移動で赤い辺を 回、青い辺を 回 - 頂点 から頂点 への移動で赤い辺を 回、青い辺を 回 - 頂点 から頂点 への移動で赤い辺を 回、青い辺を 回 - 頂点 から頂点 への移動で赤い辺を 回、青い辺を 回 それぞれ通過し、全体では赤い辺を 回、青い辺を 回通るため、条件を満たします。 ![図](https://img.atcoder.jp/ghi/f9b2b199fb6eedaca02e15ff556b72b1.png) この他、 番目の辺を青く、 番目の辺を赤く塗るときも条件を満たし、これら以外の塗り方は条件を満たさないため、答えは 通りです。
Sample Explanation 2
条件を満たす塗り方が存在しないこともあります。