这是一道月赛题(PJ
)
显然是树形DP
ansi=∑fu=imin{ansu,wu,i}
#define N 500010
int e,t[N],n[N],b[N],w[N],m,r,p[N];
#define fo(i,a) for(int i=b[a];i;i=n[i])
void add(int u,int v,int ww)
{
e++;
t[e]=v;
n[e]=b[u];
b[u]=e;
w[e]=ww;
}
long long query(int x)
{
p[x]=1;
long long sum=0;
bool flag=1;
fo(i,x)
if(!p[t[i]])
{
sum+=min(query(t[i]),(long long)w[i]);
flag=0;
}
if(flag)
return 1ll<<62;
return sum;
}
int main()
{
m=read();
r=read();
fr(i,1,m-1)
{
int u=read(),v=read(),w=read();
add(u,v,w);
add(v,u,w);
}
printf("%lld\n",query(r));
return 0;
}