mootube
描述
给定一颗N个节点的树,定义两点距离为他们之间路径中边权最小值。
Q次询问K,V,询问到V距离>=K的点有多少(不含V)
输入
第一行两个整数N,Q。
接下来N-1行,每行3个整数u,v,w表示u,v之间有条路径,长为w
接下来Q组询问,每组询问2个整数k,V
输出
Q行回答询问
样例输入
4 3
1 2 3
2 3 2
2 4 4
1 2
4 1
3 1
样例输出
3
0
2
提示
对于30%的数据,1≤N,Q≤1000。
对于70%的数据,1≤N≤2000,Q≤10^5。
对于100%的数据,1≤N,Q≤105, 1≤w,K≤109.
Analysis
在线并查集 委屈地表示还没有暴力地位高,只能拿40pts
离线并查集 得瑟地说还是离线好,不用离线见祖宗
这种数据范围显然不可能在线做啊
既然不能在线,又没有强制在线,就可以离线下来处理
tips
一般这种和边权最值有关的题,都可以用并查集
Code
#include<bits/stdc++.h>
#define in read()
#define re register
using namespace std;
inline int read(){
char ch;int f=1,res=0;
while((ch=getchar())<'0'||ch>'9') if(ch=='-') f=-1;
while(ch>='0'&&ch<='9'){
res=(res<<1)+(res<<3)