在一个树状图中,如果要赢,两个人都要往根节点方向走,所以比较两人初始位置谁更靠近跟就可以,定义一个数组fa记录父节点(此题并没啥用),定义一个ra记录等级,等级越大越儿子。
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define N 100000
int fa[N],ra[N],n,m;
int main()
{
int i,j;
while(~scanf("%d%d",&n,&m)&&n+m)
{
int a,b;
for(i=1;i<=n;i++)
fa[i]=i,ra[i]=1;
for(i=1;i<n;i++)
{
scanf("%d%d",&a,&b);
fa[b]=a;
ra[b]+=ra[a];
}
for(i=1;i<=m;i++)
{
scanf("%d%d",&a,&b);
if(ra[a]<=ra[b])
{
printf("lxh\n");
continue;
}
else
printf("pfz\n");
}
}
return 0;
}