CF342E.Xenia and Tree

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

Xenia the programmer has a tree consisting of nn nodes. We will consider the tree nodes indexed from 1 to nn . 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 vv and uu is the number of edges in the shortest path between vv and uu .

Xenia needs to learn how to quickly execute queries of two types:

  1. paint a specified blue node in red;
  2. 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.

输入格式

The first line contains two integers nn and mm (2<=n<=105,1<=m<=105)(2<=n<=10^{5},1<=m<=10^{5}) — the number of nodes in the tree and the number of queries. Next n1n-1 lines contain the tree edges, the ii -th line contains a pair of integers ai,bia_{i},b_{i} (1<=ai,bi<=n,aibi)(1<=a_{i},b_{i}<=n,a_{i}≠b_{i}) — an edge of the tree.

Next mm lines contain queries. Each query is specified as a pair of integers ti,vit_{i},v_{i} (1<=ti<=2,1<=vi<=n)(1<=t_{i}<=2,1<=v_{i}<=n) . If ti=1t_{i}=1 , then as a reply to the query we need to paint a blue node viv_{i} in red. If ti=2t_{i}=2 , then we should reply to the query by printing the shortest distance from some red node to node viv_{i} .

It is guaranteed that the given graph is a tree and that all queries are correct.

输出格式

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
    
首页