CF767C

Garland

题面翻译

\(n\)个节点的树

\(i\)个节点权值为\(a_i\). \(n<=10^6\)

\(-100<=a_i<=100\)

问是否能够删除掉两条边,使得该树分成三个不为空,并且每部分权值之和相等.

无解输出\(-1\) 否则输出要删除边(\(u->v\))的\(v\)节点序号.

样例 #1

样例输入 #1

6
2 4
0 5
4 2
2 1
1 1
4 2

样例输出 #1

1 4

样例 #2

样例输入 #2

6
2 4
0 6
4 2
2 1
1 1
4 2

样例输出 #2

-1

提示

The garland and cuts scheme for the first example:

类似子树和的处理方法
当我们找到siz[u]==tot/3时 我们就记录下来

并让siz[u]=0!

也就是砍掉了 这样处理要简单得多
然后每次回溯更新即可
注意细节 有一个点要特判 ans[1]>=1&&ans[2]>=1&&ans[1]<=n&&ans[2]<=n
posted @ 2023-01-26 16:16  PKU_IMCOMING  阅读(12)  评论(0)    收藏  举报