问题 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$