Codeforces Round 225 (Div. 1)
C
Propagating tree
Codeforces
2000
原题
← BD →
翻译中…

Iahub likes trees very much. Recently he discovered an interesting tree named propagating tree. The tree consists of $*n*$ nodes numbered from $1$ to $*n*$, each node $*i*$ having an initial value $*a*_{*i*}$. The root of the tree is node $1$.

翻译中…

This tree has a special property: when a value $*val*$ is added to a value of node $*i*$, the value -$*val*$ is added to values of all the children of node $*i*$. Note that when you add value -$*val*$ to a child of node $*i*$, you also add -(-$*val*$) to all children of the child of node $*i*$ and so on. Look an example explanation to understand better how it works.

翻译中…

This tree supports two types of queries:

翻译中…
  • "$1$ $*x*$ $*val*$" — $*val*$ is added to the value of node $*x*$;
  • "$2$ $*x*$" — print the current value of node $*x*$.
翻译中…

In order to help Iahub understand the tree better, you must answer $*m*$ queries of the preceding type.

翻译中…

Input

翻译中…

The first line contains two integers $*n*$ and $*m*$ $(1 ≤ *n*, *m* ≤ 200000)$. The second line contains $*n*$ integers $*a*_{1}$, $*a*_{2}$, ..., $*a*_{*n*}$ $(1 ≤ *a*_{*i*} ≤ 1000)$. Each of the next $*n*–1$ lines contains two integers $*v*_{*i*}$ and $*u*_{*i*}$ $(1 ≤ *v*_{*i*}, *u*_{*i*} ≤ *n*)$, meaning that there is an edge between nodes $*v*_{*i*}$ and $*u*_{*i*}$.

翻译中…

Each of the next $*m*$ lines contains a query in the format described above. It is guaranteed that the following constraints hold for all queries: $1 ≤ *x* ≤ *n*, 1 ≤ *val* ≤ 1000$.

翻译中…

Output

翻译中…

For each query of type two (print the value of node $*x*$) you must print the answer to the query on a separate line. The queries must be answered in the order given in the input.

翻译中…

Note

翻译中…

The values of the nodes are $[1, 2, 1, 1, 2]$ at the beginning.

翻译中…

Then value $3$ is added to node $2$. It propagates and value -$3$ is added to it's sons, node $4$ and node $5$. Then it cannot propagate any more. So the values of the nodes are $[1, 5, 1,  - 2,  - 1]$.

翻译中…

Then value $2$ is added to node $1$. It propagates and value -$2$ is added to it's sons, node $2$ and node $3$. From node $2$ it propagates again, adding value $2$ to it's sons, node $4$ and node $5$. Node $3$ has no sons, so it cannot propagate from there. The values of the nodes are $[3, 3,  - 1, 0, 1]$.

翻译中…

You can see all the definitions about the tree at the following link: http://en.wikipedia.org/wiki/Tree_(graph_theory)

翻译中…

样例

Input #1
5 5
1 2 1 1 2
1 2
1 3
2 4
2 5
1 2 3
1 1 2
2 1
2 2
2 4
Output #1
3
3
0
InputCopy OutputCopy
题目信息
题号
383C
时间限制
2 s
内存限制
256 MB
标签
数据结构
DFS 及类似
树

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。