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