问题 D:树上集合

文件提交:无需freopen 内存限制:128 MB 时间限制:1.000 S
评测方式:普通裁判 命题人:
提交:2 解决:2

题目描述

给定一棵 $N$ 个节点的有根树,节点编号为 $1,2,3....n$,$1$ 号节点为根,每个节点上都有一个集合 $S$。

你需要进行 $Q$ 次操作,每次操作表示为两个正整数 $u,x$,表示在 $u$ 及其子树内所有的结点的集合都插入数 $x$。

操作完成后,今 $f(y)$ 表示节点上的集合包含 $y$ 的节点个数,你需要对所有的正整数的 $f(y)$ 求和并输出。

输入

第一行两个正整数 $N,Q$

接下来 $N-1$ 行,每行两个正整数,表示树的一条边。

接下来 $Q$ 行,每行两个正整数 $u,x$ 表示一个操作。

对于所有数据: $1\le N,Q\le 10^5,1\le x\le 100$

输出

输出一行一个整数表示所有 $f(y)$ 的和。

样例输入-1 复制

5 3
1 2
1 3
3 4
3 5
1 1
3 2
4 2

样例输出-1 复制

8

提示

样例解释:

第一次操作:$1,2,3,4,5$ 号节点上的集合被插入了 $1$

第二次操作:$3,4,5$ 号节点上的集合被插入了 $2$

第三次操作:$4$ 号节点上的集合再次被插入了 $2$,但 $f(2)$ 的值不变。

由于有 $5$ 个节点上的集合包含 $1$;有 $3$ 个节点上的集合包含 $2$;

所以 $f(1) = 5, f(2) = 3$; 其余 $f(y) = 0$

因此答案为 $5+3=8$