树的分治
时间限制:1秒 内存限制:256M
【题目描述】
给定一棵 \(N\) 个节点的带权树,定义 \(dist(u,v)\) 为 \(u,v\) 两点间的最短路径长度,路径的长度义为路径上所有边的权和。再给定一个 \(K\),如果对于不同的两个结点 \(a,b\),如果满足 \(dist(a,b)≤K\),则称 \((a,b)\) 为合法点对。
你的任务是求合法点对个数。
【输入格式】
第一行包含两个个整数 \(N\) 和 \(K\),接下来的 \(N-1\) 行,每行包含三个整数:\(u,v,len\),表示树边 \((u,v)\) 的长度\(len\)。
【输出格式】
一个整数,表示合法点对的数目。
【输入输出样例1】
Input
5 4
1 2 3
1 3 1
1 4 2
3 5 1
Output
8
【数据限制】
对于 \(20\%\) 的数据,\(1≤N≤100000\),\(1≤K≤10^9\),\(1≤len≤10000\)
【来源】
Mr.he