题目:一棵树,每条边有权.求一条路径,权值和等于K,且边的数量最小. 点分治,我们考虑经过根节点的路径,t[x]表示路径长为x时最少的边数,然后每次拿栈记下来清空. 注意先搜索再更新,这样可以避免同一子树内互相到达. By:大奕哥 #include<bits/stdc++.h> using namespace std; ,inf=1e9,M=1e6+;; int n,k,rt,cnt,head[N],s[N],f[N],t[M],ans,maxn,sta[N],top,dis[N],d[N];…