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();
}

Download