#P1740. hyy有鱼系列(13)

hyy有鱼系列(13)

Description

【背景】
小鱼走进了吸吸F的金库
【题意】
金库成树形结构,有n个节点和n-1条边,节点编号为1~n,其中每个区域有d[i]个jinbi
小鱼掏出了磁铁
jinbi便以奇怪的方式沿着通道以每秒2条边的速度飞来
小鱼会选择一个节点出去,假如它想从i号节点的传送走,那么它会以每秒1条边的速度沿最短路径过去
这期间可能会迎面碰到一些jinbi,身后可能也会有jinbi飞过来
jinbi碰到磁铁就被吸住了
现在小鱼想知道,以每个点为出口时,最终会顺走多少jinbi
为了减少你程序的输出量,最后将答案全部异或起来输出
【输入格式】
第一行两个正整数n
下来一行n个非负整数,第i个数字表示i号节点有d[i]个jinbi
下来n-1行每行两个正整数x,y表示一条边
【输出格式】
一个整数,表示对应答案
【输入样例】
5
1 10 100 1000 10000
1 2
2 3
1 4
4 5
【输出样例】
12117
//上面是ans数组的异或和(下面是ans数组,不用输出)
1
1111
11111
11011
11111
【提示】
1<=n<=400000
数据总和不爆int
时限1000ms
【样例解释】
以d[i]表示i号节点的jinbi(“小鱼拿到了d[3]”表示小鱼的磁铁吸到了来自3号节点的d[3]个jinbi)
以【1】号节点为终点时:
在第0秒,小鱼在1号节点,拿到了d[1],然后小鱼离开,最终ans[1]=1
以【2】号节点为终点时:
在第0秒,小鱼在1号节点,拿到了d[1],ans[2]=1(这个等于指此时拿到的jinbi数,还没到最终结果)
在(0,1]秒,小鱼在2号节点,拿到了d[2]、d[3]、d[4],然后小鱼离开,最终ans[2]=1111
以【3】号节点为终点时:
在第0秒,小鱼在1号节点,拿到了d[1],ans[3]=1
在(0,1]秒,小鱼在2号节点,拿到了d[2]、d[3]、d[4],ans[3]=1111
在(1,2]秒,小鱼在3号节点,拿到了d[5],然后小鱼离开,最终ans[3]=11111
以【4】号节点为终点时:
在第0秒,小鱼在1号节点,拿到了d[1],ans[4]=1
在(0,1]秒,小鱼在4号节点,拿到了d[2]、d[4]、d[5],然后小鱼离开,最终ans[4]=11011
以【5】号节点为终点时:
在第0秒,小鱼在1号节点,拿到了d[1],ans[5]=1
在(0,1]秒,小鱼在4号节点,拿到了d[2]、d[4]、d[5],ans[5]=11011
在(1,2]秒,小鱼在5号节点,拿到了d[3],然后小鱼离开,最终ans[5]=11111