CF342E.Xenia and Tree
提高+/省选-
通过率:0%
时间限制:5.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Xenia the programmer has a tree consisting of n nodes. We will consider the tree nodes indexed from 1 to n. We will also consider the first node to be initially painted red, and the other nodes — to be painted blue.
The distance between two tree nodes v and u is the number of edges in the shortest path between v and u.
Xenia needs to learn how to quickly execute queries of two types:
- paint a specified blue node in red;
- calculate which red node is the closest to the given one and print the shortest distance to the closest red node.
Your task is to write a program which will execute the described queries.
程序员 Xenia 有一棵包含 n 个节点的树。我们将树的节点编号为 1 到 n。初始时,第 1 号节点被涂成红色,其余所有节点均被涂成蓝色。
树中两个节点 v 和 u 之间的距离定义为连接 v 与 u 的最短路径所含边的数量。
Xenia 需要学习如何快速处理以下两类查询:
- 将指定的一个蓝色节点涂成红色;
- 计算距离给定节点最近的红色节点,并输出到该最近红色节点的最短距离。
你的任务是编写一个程序来执行上述查询。
输入格式
The first line contains two integers n and m (2 ≤ n ≤ 105, 1 ≤ m ≤ 105) — the number of nodes in the tree and the number of queries. Next n - 1 lines contain the tree edges, the i-th line contains a pair of integers a__i, b__i (1 ≤ a__i, b__i ≤ n, a__i ≠ b__i) — an edge of the tree.
Next m lines contain queries. Each query is specified as a pair of integers t__i, v__i (1 ≤ t__i ≤ 2, 1 ≤ v__i ≤ n). If t__i = 1, then as a reply to the query we need to paint a blue node v__i in red. If t__i = 2, then we should reply to the query by printing the shortest distance from some red node to node v__i.
It is guaranteed that the given graph is a tree and that all queries are correct.
第一行包含两个整数 n 和 m(2≤n≤105,1≤m≤105)—— 分别表示树中节点的数量和查询的数量。接下来的 n−1 行描述树的边,其中第 i 行包含一对整数 ai,bi(1≤ai,bi≤n,ai=bi)—— 表示树中的一条边。
接下来的 m 行包含查询。每个查询由一对整数 ti,vi(1≤ti≤2,1≤vi≤n)指定。若 ti=1,则需将蓝色节点 vi 染为红色;若 ti=2,则需回答从任意一个红色节点到节点 vi 的最短距离。
保证所给图是一棵树,且所有查询均合法。
输出格式
For each second type query print the reply in a single line.
对于每个第二类查询,请在单独一行中输出回答。
输入输出样例
输入#1
5 4 1 2 2 3 2 4 4 5 2 1 2 5 1 2 2 5
输出#1
0 3 2
输入解题思路,AI测评打分。不知道怎么写?