#C. Ki

该文描述了一个以1为根的树形结构问题,其中每个节点有一个计数器,初始值为0。文章提出了Q次操作,每次操作会增加某个节点p_i的子树中所有点的计数器值x_i。解决方案是使用深度优先搜索(DFS)将增加的数值逐层向下传递到子节点,最终输出每个节点的计数器最终值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Description

给出一棵以1为根的树,有N个点,每个点上有一个计数器,初始0

接下来Q次操作,每次操作将p_i的子树中所有点的计数器增加x_i,输出最后每个点的计数器值

Format

Input

第一行给出N,Q

接下来N-1行描述这个树

再接下来Q行,每行给出Pi,Xi

2<=N<=2e5

1<=Q<=2e5

xi<=1e4

Output

如题

Samples

输入数据 1

4 3

1 2

2 3

2 4

2 10

1 100

3 1

输出数据 1

100 110 111 110


思路:

每次操作是给以x为根的子树统一加一个数值

于是将增加的数值打在x这个点上,并在今后的dfs遍历中传递下去加给x的每个子结点,一直这样递归下去,直到叶子结点为止


代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值