2294: 种草地(树链剖分)

Memory Limit:128 MB Time Limit:1 S
Judge Style:Text Compare Creator:
Submit:47 Solved:23

Description

农夫约翰有N块贫瘠的牧场(2 <= N <= 100,000),有N-1条双向道路将这N个牧场连接了起来,每两个牧场间都有且仅有一条路径可相互到达。著名奶牛贝西经常抱怨:为什么连接牧场的道路上没有草可吃呢?

约翰非常喜欢贝西,今天约翰终于决定要在道路上种草了。约翰的种草工作被分成了M(1 <= M <=100,000)步操作。

在每一步中,下列两个事件中的一个会发生:
1.约翰会选择两个牧场,沿着两个牧场间的路径,在路径上的每一条道路上都种植1株牧草;
2.贝西会向约翰提问:在一条指定的道路上,种植了多少株牧草。

请帮助约翰回答贝西的问题。

Input

第一行有两个正整数N和M。

接下来N-1行,每行两个数,表示一条路径两端的牧场编号。

接下来M行,每行开头有一个字母,表示约翰的操作,P表示种植牧草,Q表示询问。接下来有两个数字,表示两个牧场的编号。

Output

对于每个询问,输出一行,一个数,表示该询问的答案。

Sample Input Copy

4 6
1 4
2 4
3 4
P 2 3
P 1 3
Q 3 4
P 1 4
Q 2 4
Q 1 4

Sample Output Copy

2
1
2

HINT

《高级数据结构》例题12-2

来源:美国计算机竞赛 USACO 2011 Dec

加入题单

上一题 下一题 算法标签: