PWALK - Dạo chơi đồng cỏ
Tác giả: hieult
Ngôn ngữ: C++
#include <cstdio>
//#include <conio.h>
struct diemnoi
{
int num;
int a[1001];
int dai[1001];
};
int n,m,x,y,z,f[1001];
diemnoi A[1001];
void tim(int u)
{
if(u==y );
else
{
for(int i = 1;i<=A[u].num;i++)
{
if(f[A[u].a[i]]==0 && A[u].a[i]!=x)
{
f[A[u].a[i]] = f[u]+A[u].dai[i];
//printf("%d %d\n",A[x].a[i],f[A[x].a[i]]);
tim(A[u].a[i]);
}
}
}
}
int main()
{
//freopen("PWALK.in","r",stdin);
scanf("%d %d",&n,&m);
for(int i = 1;i<=n;i++)
A[i].num = 0;
for(int i = 1;i<n;i++)
{
scanf("%d %d %d",&x,&y,&z);
A[x].num++;
A[y].num++;
A[x].a[A[x].num] = y;
A[y].a[A[y].num] = x;
A[x].dai[A[x].num] = z;
A[y].dai[A[y].num] = z;
}
for(int i = 1;i<=m;i++)
{
scanf("%d %d",&x,&y);
for(int j = 1;j<=n;j++)
f[j] = 0;
tim(x);
printf("%d\n",f[y]);
}
//getch();
}