题目描述
【题目描述】
在业余时间,农民约翰创建了一个新的视频分享服务,他命名为MooTube。在MooTube上,农夫约翰的奶牛可以录制、分享和发现许多有趣的视频。他的奶牛已经发布了N个视频(1≤N≤5000),方便地编号为1…N。然而,FJ不太清楚如何帮助他的奶牛找到它们可能喜欢的新视频。
FJ想为每个MooTube视频创建一个“建议视频”列表。这样,就会向奶牛推荐与它们已经看过的视频最相关的视频。
FJ设计了一个“相关性”的度量标准,顾名思义,它决定了两个视频之间的相关性。他选择N−1对视频,并手动计算它们的成对相关性。然后,FJ将他的视频可视化为一个网络,其中每个视频是一个节点,他手动考虑的N−1对视频是连接的。FJ很方便地选择了N−1对,这样任何视频都可以沿着连接路径以一种方式从任何其他视频到达。FJ决定任何一对视频的相关性都应该定义为沿着这条路径的任何连接的最小相关性。
Farmer John想要选择一个值K,这样在任何给定的MooTube视频旁边,所有与该视频相关的至少K的其他视频都会被推荐出来。然而,FJ担心过多的视频会让他的奶牛分心,从而无法产奶!因此,他想仔细设置一个合适的K值。Farmer John希望你能帮助回答一些关于K值的建议视频的问题。
【输入格式】(mootube.in):
第一行输入包含N和Q(1≤Q≤5000)。
接下来的N - 1行描述了FJ手动比较的一对视频。每一行包含pi、qi、ri三个整数(1≤pi,qi≤N,1≤ri≤1,000,000,000),表示视频pi和qi之间存在相关性ri。
下面的Q行描述了农夫约翰的Q问题。每行包含两个整数ki和vi(1≤ki≤1,000,000,000,1≤vi≤N),表示FJ的第i个问题询问如果K=ki,视频vi的观众将被建议多少个视频。
【输出格式】(mootube.out):
输出Q行。在第i行,输出FJ第i个问题的答案。
【样例输入】:
4 3
1 2 3
2 3 2
2 4 4
1 2
4 1
3 1
【样例输出】:
3
0
2
【样例说明】
农夫约翰发现视频一和视频二的相关性为三,视频二和视频三的相关性为二,视频二和视频四的相关性为四。据此,视频1和视频3的相关性min(3,2) = 2,视频1和视频4的相关性min(3,4) = 3,视频3和视频4的相关性min(2,4) = 2。
农夫约翰想知道如果K=1,视频2会推荐多少个视频,K=3,视频1会推荐多少个视频,K=4,视频1会推荐多少个视频。我们看到K=1时,视频1,3,4会在视频2中出现。当K=4时,不会从视频1中建议任何视频。然而,当K=3时,将从视频1中建议视频2和4。