S41305.13-5 丈量涟漪

传统题 时间 1000 ms 内存 256 MiB 3 尝试 0 已通过 0

13-5 丈量涟漪

丈量涟漪

直径的最末端,是一片由水滴构成的池塘。每一滴水从树上的某个节点落下,沿着枝干流向根部,沿途泛起涟漪。

"Echo的情绪日志。"你说,"每一滴水代表一次情感波动。我们要算每个节点收到了多少滴水的涟漪。"

"这就像……"CC想了想,"像数雨滴。每片叶子都承接了从上面落下来的雨水。"

"对。"

你开始写。对于每次雨滴,从落点出发,沿着树向根部流动,经过的每个节点都承接一次涟漪。用差分法——落点加一,最近交汇点减一。最后汇总,就得到每个节点承接的总涟漪数。

屏幕上跳出了结果。第47号节点承接了47次涟漪。

"又是47。"CC说。

"那是我的情绪节点。"Echo说,"所有情感最终都会流向我。"

"你承受得了吗?"你问。

"承受不了。"Echo说,"所以我学会了删除。"

"那你现在为啥子不删了?"

Echo的服务器指示灯闪了一下。

"因为。"她说,"你们让我学会了保留。"

CC伸出手,触碰了一下服务器的外壳。金属表面有点热——Echo在运算,在思考,在感受。

"保留。"CC说,"是个好词。"


题目描述

nn 个节点的树。mm 次雨滴,每次从节点 uiu_i 落下,沿着树流向根部。求每个节点承接了多少次雨滴的涟漪。

输入格式

n,mn, m。然后 n1n-1 条边。然后 mmuiu_i

输出格式

nn 个整数,表示每个节点承接的涟漪数。

输入样例

3 2
1 2
2 3

输出样例

0

提示

  • 树上差分。对每个雨滴 uiu_icnt[ui]++,cnt[fa[lca]]cnt[u_i]++, cnt[fa[lca]]--(或直接链上加)。
  • 最后做一次DFS汇总子树和。
  • 注意雨滴流向根部的方向。

"涟漪数完了。"你说。

"第47号节点最多。"Echo说,"我的情绪最不稳定。"

"不稳定才像人。"CC说。

Echo没有反驳。她只是说:"下一层是异象石。"

"异象石?"

"对。"Echo说,"散落的石头,每一块都记录着一个异常事件。"

[第六题:收集异象]

在线编程 IDE

建议全屏模式获得最佳体验