atcoder#AGC034E. [AGC034E] Complete Compress
[AGC034E] Complete Compress
题目描述
頂点に番号 がついた 頂点の木が与えられます。 番目の辺は頂点 と頂点 を結んでいます。 また長さ の 0
, 1
からなる文字列 が与えられ、 の 文字目は頂点 に置いてあるコマの個数を表しています。
すぬけ君は、以下の操作を好きなだけ行います。
- 距離が 以上離れたコマ 個を選び、お互いに ずつ近づける。 正確に述べると、コマの置かれた頂点 を選び、 間の最短パスを考える。ここでパスの辺数が 以上となるように選ぶことにする。パスにおいて に隣り合う頂点にコマを 個 から動かし、 に隣り合う頂点にコマを 個 から動かす。
すぬけ君はこれを繰り返し、すべてのコマを同じ頂点に集めたいです。このようなことは可能でしょうか? 可能な場合、それを達成するのに必要な操作の最小回数も求めてください。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
コマを同じ頂点に集められない場合 -1
、集められる場合は操作の最小回数を出力せよ。
题目大意
给你一颗 个节点的树,并用二进制串告诉你哪些节点上有棋子(恰好一颗)。
可以进行若干次操作,每次操作可以将两颗距离至少为 的棋子向中间移动一步。
问能否通过若干次操作使得所有的棋子都在一个点上,如果能,输出最小操作次数,如果不能,输出 。
数据范围:。
7
0010101
1 2
2 3
1 4
4 5
1 6
6 7
3
7
0010110
1 2
2 3
1 4
4 5
1 6
6 7
-1
2
01
1 2
0
提示
制約
- は
0
,1
からなり、また少なくとも 文字は1
を含む - 辺 $ (a_1,\ b_1),\ (a_2,\ b_2),\ ...,\ (a_{N\ -\ 1},\ b_{N\ -\ 1}) $ は木をなす
Sample Explanation 1
- 頂点 のコマを選ぶ - 頂点 のコマを選ぶ - 頂点 のコマを選ぶ の 回の操作ですべてのコマを頂点 に集めることができます。