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


    树上战争

    Time Limit: 10000/4000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 799    Accepted Submission(s): 436


    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
     1 #include <iostream>
     2 #include <cstring>
     3 #include <algorithm>
     4 #include <cstdio>
     5 #define Max 100000+10
     6 using namespace std;
     7 int n,m;
     8 int Rank[Max];
     9 int per[Max];
    10 void init()
    11 {
    12     for(int i=1;i<=n;i++)
    13     {
    14         per[i]=i;
    15         Rank[i]=1;
    16     }    
    17     return;
    18 }
    19 void unite(int a,int b)
    20 {
    21     per[b]=a;
    22     Rank[b]=Rank[a]+1;
    23     return;
    24 }
    25 int main()
    26 {
    27     int i,j;
    28     int a,b;
    29     //freopen("in.txt","r",stdin);
    30     while(scanf("%d%d",&n,&m)!=EOF)
    31     {
    32         init();
    33         if(n==0&&m==0)
    34             break;
    35         for(i=0;i<n-1;i++)
    36         {
    37             scanf("%d%d",&a,&b);
    38             unite(a,b);
    39         }
    40         for(i=0;i<m;i++)
    41         {
    42             scanf("%d%d",&a,&b);
    43             if(Rank[a]<=Rank[b])
    44                 printf("lxh
    ");
    45             else
    46                 printf("pfz
    ");
    47         }
    48     }
    49     return 0;
    50 }
  • 相关阅读:
    【面试题】面试题合集三
    【面试题】面试题合集二
    【面试易错题】陷阱题集一
    40个Java集合面试问题和答案
    java面试题全集(下)
    java面试题全集(中)
    java面试题全集(上)
    spring cloud基础教程
    spring boot基础学习教程
    DDD
  • 原文地址:https://www.cnblogs.com/a1225234/p/5181638.html
Copyright © 2020-2023  润新知