CF258E.Little Elephant and Tree

提高+/省选-

通过率:0%

时间限制:4.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

The Little Elephant loves trees very much, he especially loves root trees.

He's got a tree consisting of n nodes (the nodes are numbered from 1 to n), with root at node number 1. Each node of the tree contains some list of numbers which initially is empty.

The Little Elephant wants to apply m operations. On the i-th operation (1 ≤ i ≤ m) he first adds number i to lists of all nodes of a subtree with the root in node number a__i, and then he adds number i to lists of all nodes of the subtree with root in node b__i.

After applying all operations the Little Elephant wants to count for each node i number c__i — the number of integers j (1 ≤ j ≤ n; j ≠ i), such that the lists of the i-th and the j-th nodes contain at least one common number.

Help the Little Elephant, count numbers c__i for him.

小象非常喜欢树,尤其是有根树。

他有一棵由 nn 个节点组成的树(节点编号为 11 到 nn),根节点为节点 11。树中每个节点都包含一个数字列表,初始时该列表为空。

小象希望执行 mm 次操作。在第 ii 次操作(1≤i≤m1 \le i \le m)中,他首先将数字 ii 添加到以节点 aia_i 为根的子树中所有节点的列表中,然后将数字 ii 添加到以节点 bib_i 为根的子树中所有节点的列表中。

在执行完所有操作后,小象希望对每个节点 ii 计算数 cic_i —— 即满足如下条件的整数 jj 的个数(1≤j≤n1 \le j \le n;j≠ij \ne i):第 ii 个节点与第 jj 个节点的列表中至少含有一个相同的数字。

请帮助小象计算出各个 cic_i。

输入格式

The first line contains two integers n and m (1 ≤ n, m ≤ 105) — the number of the tree nodes and the number of operations.

Each of the following n - 1 lines contains two space-separated integers, u__i and v__i (1 ≤ u__i, v__i ≤ n, u__i ≠ v__i), that mean that there is an edge between nodes number u__i and v__i.

Each of the following m lines contains two space-separated integers, a__i and b__i (1 ≤ a__i, b__i ≤ n, a__i ≠ b__i), that stand for the indexes of the nodes in the i-th operation.

It is guaranteed that the given graph is an undirected tree.

第一行包含两个整数 nn 和 mm(1≤n,m≤1051 \leq n, m \leq 10^5)—— 分别表示树的节点数和操作数。

接下来的 n−1n-1 行,每行包含两个用空格分隔的整数 uiu_i 和 viv_i(1≤ui,vi≤n1 \leq u_i, v_i \leq n,且 ui≠viu_i \neq v_i),表示节点 uiu_i 与节点 viv_i 之间存在一条边。

再接下来的 mm 行,每行包含两个用空格分隔的整数 aia_i 和 bib_i(1≤ai,bi≤n1 \leq a_i, b_i \leq n,且 ai≠bia_i \neq b_i),表示第 ii 次操作所涉及的两个节点的编号。

保证给定的图是一棵无向树。

输出格式

In a single line print n space-separated integers — _c_1, _c_2, ..., c__n.

在一行中输出 n 个空格分隔的整数 — _c_1, _c_2, ..., c__n。

输入输出样例

  • 输入#1

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

    输出#1

    0 3 3 3 3
  • 输入#2

    11 3
    1 2
    2 3
    2 4
    1 5
    5 6
    5 7
    5 8
    6 9
    8 10
    8 11
    2 9
    3 6
    2 8

    输出#2

    0 6 7 6 0 2 0 5 4 5 5

输入解题思路,AI测评打分。不知道怎么写?

首页