Problem Description
给一棵树,如果树上的某个节点被某个人占据,则它的所有儿子都被占据,lxh和pfz初始时分别站在两个节点上,谁当前所在的点被另一个人占据,他就输了比赛,问谁能获胜
 
Input
输入包含多组数据

每组第一行包含两个数N,M(N,M<=100000),N表示树的节点数,M表示询问数,N=M=0表示输入结束。节点的编号为1到N。

接下来N-1行,每行2个整数A,B(1<=A,B<=N),表示编号为A的节点是编号为B的节点的父亲

接下来M行,每行有2个数,表示lxh和pfz的初始位置的编号X,Y(1<=X,Y<=N,X!=Y),lxh总是先移动

 
Output
对于每次询问,输出一行,输出获胜者的名字
 
Sample Input
2 1
1 2
1 2
5 2
1 2
1 3
3 4
3 5
4 2
4 5
0 0
 
Sample Output
lxh
pfz
lxh

提示:
本题输入、输出都很多,请使用scanf和printf代替cin、cout。

#include<stdio.h>
struct node
{
int data;
int namber;
}fath[100005]; void set_fist(int n)//设置初始
{
int i;
for(i=1;i<=n;i++)
{
fath[i].data=i;
fath[i].namber=1;//代表i在第namber个节点
}
} void set_fath(int a,int b)
{
fath[b].namber+=fath[a].namber; fath[b].data=a;//b的父节点就是a
}
int main()
{
int n,m,a,b,l,p;
while(scanf("%d%d",&n,&m)>0&&(n||m))
{
set_fist(n);
n-=1;
while(n--)
{
scanf("%d%d",&a,&b);
set_fath(a,b);
}
while(m--)
{
scanf("%d%d",&l,&p);
if(fath[l].namber<=fath[p].namber)//数越小说明越在前方
printf("lxh\n");
else
printf("pfz\n");
}
}
}

 

hdu2545 树上战争 (并查集)的更多相关文章

  1. 牛客小白月赛28 J.树上行走 (并查集,dfs)

    题意:有\(n\)个点,\(n-1\)条边,每个点的类型是\(0\)或\(1\),现在让你选一个点,然后所有与该点类型不同的点直接消失,问选哪些点之后,该点所在的联通块最大. 题解: 因为选完之后两个 ...

  2. hdu-2874 Connections between cities(lca+tarjan+并查集)

    题目链接: Connections between cities Time Limit: 10000/5000 MS (Java/Others)     Memory Limit: 32768/327 ...

  3. 洛谷 - P1552 - 派遣 - 左偏树 - 并查集

    首先把这个树建出来,然后每一次操作,只能选中一棵子树.对于树根,他的领导力水平是确定的,然后他更新答案的情况就是把他子树内薪水最少的若干个弄出来. 问题在于怎么知道一棵子树内薪水最少的若干个分别是谁. ...

  4. LA_4730 Kingdom 并查集+树状数组

    给定N个点的坐标,代表N各城市,有M种操作,共分两种,一种是连线,把两个点连起来(一旦构成连通图,这个连通图即为一个州),还有种询问操作,为y=c,(c为小数部分恒为.5的实数),问y=c这条线经过了 ...

  5. hdu 2545 树上战争(并查集)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2545 树上战争 Time Limit: 10000/4000 MS (Java/Others)     ...

  6. HDU 2545 树上战争 (并查集+YY)

    题意:给一棵树,如果树上的某个节点被某个人占据,则它的所有儿子都被占据,lxh和pfz初始时分别站在两个节点上,lxh总是先移动 ,谁当前所在的点被另一个人占据,他就输了比赛,问谁能获胜 比较有意思的 ...

  7. 树上战争(HDU 2545 并查集求解点到根节点长度)

    树上战争 Time Limit: 10000/4000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  8. BZOJ4699 树上的最短路(最短路径+dfs序+线段树+堆+并查集)

    首先一般化的将下水道和塌陷看成一个东西.注意到在从源点出发的所有需要使用某条下水道的最短路径中,该下水道只会被使用一次,该下水道第一个被访问的点相同,且只会在第一个访问的点使用该下水道.这个第一个访问 ...

  9. 【20181023T1】战争【反向并查集】

    题面 [错解] 好像是个树唉我真聪明 然后就开始树上乱搞 最后写了个O(过不了)的神奇算法 60pts [正解] 题目中只有删点而不加点,考虑倒过来并查集 维护一个并查集内的和顺手维护一下就好了 复杂 ...

随机推荐

  1. 【mysql的设计与优化专题(1)】ER图,数据建模与数据字典

    需求分析是做项目中的极为重要的一环,而作为整个项目中的'血液'--数据,更是重中之重.viso,workbench,phpmyadmin等软件可以帮我们更好的处理数据分析问题. ER图 E-R方法是& ...

  2. java:比较对象

    对象内容相等条件:1.对象类型相同(可用instanceof操作符比较)2.对象的成员变量的值完全相同 instanceof 判断对象类型 //a是否为Child对象类型 boolean b = a ...

  3. ArcGIS学习记录—属性表的编辑与修改

    原文地址: ArcGIS问题:属性表的编辑与修改 - Silent Dawn的日志 - 网易博客 http://gisman.blog.163.com/blog/static/344933882009 ...

  4. Java对象相关元素的初始化过程

    1.类的成员变量.构造函数.成员方法的初始化过程 当一个类使用new关键字来创建新的对象的时候,比如Person per = new Person();JVM根据Person()寻找匹配的类,然后找到 ...

  5. Complete The Pattern #1

    Complete The Pattern #1 Task: You have to write a function pattern which creates the following patte ...

  6. 1220. Stacks

    1220 又一神题啊  卡内存可以卡到这种地步 省得不行了 开两个[N]数组 一个来记录前驱  一个存数 记录前驱的用unsigned short类型 最大可达65535 不过可以标记一下是否比这个数 ...

  7. bzoj1857

    三分的入门题,如果从AB上一点走到D是一个单峰函数从AB开始向CD传送带走的那个点也是一个单峰函数显然三分套三分 const eps=1e-5; var ax,ay,bx,by,cx,cy,dx,dy ...

  8. poj2月下旬题解

    poj2388 水题 poj1273 最大流初步 poj2456 简单的二分答案 poj2309 论lowbit的重要性 poj1734 floyd求最小环 poj1001 细节题 poj2184 0 ...

  9. BZOJ2500: 幸福的道路

    题解: 一道不错的题目. 树DP可以求出从每个点出发的最长链,复杂度O(n) 然后就变成找一个数列里最长的连续区间使得最大值-最小值<=m了. 成了这题:http://www.cnblogs.c ...

  10. OS.ENVIRON()详解

    OS.ENVIRON()详解