http://acm.uestc.edu.cn/#/problem/show/32

树上战争(Battle on the tree)

Time Limit: 12000/4000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others)
Submit Status

给一棵树,如果树上的某个节点被某个人占据,则它的所有儿子都被占据,lxhpfz初始时分别站在两个节点上,谁当前所在的点被另一个人占据,他就输了比赛,问谁能获胜。

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个数,表示lxhpfz的初始位置的编号X,Y(1≤X,Y≤N,X≠Y),lxh总是先移动。

Output

对于每次询问,输出一行,输出获胜者的名字。

Sample input and output

Sample Input Sample Output
2 1
1 2
1 2
5 2
1 2
1 3
3 4
3 5
4 2
4 5
0 0
lxh
pfz
lxh

题解:记忆化搜索。这道题目,其实是要你求出两人所在节点的深度(即到根的距离),做个比较即可。实现时,把儿子指向父亲作为有向边,因为是树,所以n-1个节点对应n-1条有向边。做个记忆化搜索即可。

代码:

 #include <fstream>
#include <cstdio>
#include <cstring>
#include <iostream> using namespace std; const int N=;
int n,m;
int u[N];
int dis[N];
bool b[N]; int dfs(int i); int main()
{
//freopen("D:\\input.in","r",stdin);
//freopen("D:\\output.out","w",stdout);
int t1,t2;
while(scanf("%d%d",&n,&m),n){
memset(dis,-,sizeof(dis));
memset(b,,sizeof(b));
for(int i=;i<n;i++){
scanf("%d%d",&t1,&t2);
u[t2]=t1;//由儿子指向父亲
b[t2]=;
}
for(int i=;i<m;i++){
scanf("%d%d",&t1,&t2);
if(dis[t1]==-) dfs(t1);
if(dis[t2]==-) dfs(t2);
if(dis[t1]<=dis[t2]) puts("lxh");
else puts("pfz");
}
}
return ;
}
int dfs(int i){
if(dis[i]!=-) return dis[i];
if(b[i]==) return ;
dis[i]=dfs(u[i])+;
return dis[i];
}

cdoj32-树上战争(Battle on the tree) 【记忆化搜索】的更多相关文章

  1. Codeforces Global Round 23 D.Paths on the Tree(记忆化搜索)

    https://codeforces.ml/contest/1746/problem/D 题目大意:一棵n节点有根树,根节点为1,分别有两个数组 s[i] 顶点 i 的魅力值 c[i] 覆盖顶点 i ...

  2. cdoj 树上战争(Battle on the tree) Label:并查集?

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

  3. UESTC 32 树上战争(Battle on the tree)

    这题其实很简单,每个人肯定都往上走,才能保证尽快赢,所以无非是看谁离根节点近,即深度小..用并查集中的findset思想,不断找父节点一直到根节点来找深度就可以了. 代码: #include < ...

  4. 记忆化搜索 codevs 2241 排序二叉树

    codevs 2241 排序二叉树 ★   输入文件:bstree.in   输出文件:bstree.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述] 一个边长为n的正三 ...

  5. 2017广东工业大学程序设计竞赛决赛 题解&源码(A,数学解方程,B,贪心博弈,C,递归,D,水,E,贪心,面试题,F,贪心,枚举,LCA,G,dp,记忆化搜索,H,思维题)

    心得: 这比赛真的是不要不要的,pending了一下午,也不知道对错,直接做过去就是了,也没有管太多! Problem A: 两只老虎 Description 来,我们先来放松下,听听儿歌,一起“唱” ...

  6. trie上记忆化搜索,括号匹配——cf1152D好题!

    一开始以为是卡特兰数的性质,,后来发现其实是dp,但是用记忆化搜索感觉更方便一点先来考虑字典树上的问题 设要求的序列长度是2n,我们用二元组(a,b)来表示前面长为a的序列中出现的 '(' - ')' ...

  7. BNU 20860——Forwarding Emails——————【强连通图缩点+记忆化搜索】

    Forwarding Emails Time Limit: 1000ms Memory Limit: 131072KB This problem will be judged on UVA. Orig ...

  8. Codeforces Round #554 (Div. 2) D 贪心 + 记忆化搜索

    https://codeforces.com/contest/1152/problem/D 题意 给你一个n代表合法括号序列的长度一半,一颗有所有合法括号序列构成的字典树上,选择最大的边集,边集的边没 ...

  9. Poj-P1088题解【动态规划/记忆化搜索】

    本文为原创,转载请注明:http://www.cnblogs.com/kylewilson/ 题目出处: http://poj.org/problem?id=1088 题目描述: 区域由一个二维数组给 ...

随机推荐

  1. java 线程池--ExecutorService

    一 Java通过Executors提供四种线程池,分别为: newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程. new ...

  2. drill 数据源配置

    1. mongodb { "type":"mongo", "connection":"mongodb://user:passwor ...

  3. ORACLE 12C RMAN 功能增强

    在ORACLE 12C中对rman的功能有了不少增强,在以前的文章中写过RMAN RECOVER TABLE功能,这里另外补充rman增强的两个小功能(sql语句和数据文件分割)数据库版本 SQL&g ...

  4. 基于spring的异常一站式解决方案

    https://segmentfault.com/a/1190000006749441#articleHeader4 https://lrwinx.github.io/2016/04/28/%E5%A ...

  5. 【SQLYOG】SSH ERROR:UNABLE TO OPEN CONNECTION:GETHOSTBYNAME:UNKNOWN ERROR牵引出来的一系列问题

    出现这个问题很蹊跷,SQLyog管理过一二十台的mysql服务器或者vps,连接一直没有问题,各种服务商的都没问题,也包括阿里云的.可昨天偏偏一台阿里云的服务器本地通过SQLyog去连接它的时候报这样 ...

  6. snmp安装zabbix

    zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题.  zabbix由2部分构成,zabbix server与可选组件zabbix ...

  7. (转)Inno Setup入门(二十一)——Inno Setup类参考(7)

    本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17268435 复选框 复选框(CheckBox)用于多个并不互斥的几 ...

  8. java6枚举类型

    java.lang.Enum > 使用enum定义. 类如: public class EnumDemo { enum Edge { TOP, BOTTOM, LEFT, RIGHT//定义了一 ...

  9. ALSA声卡09_从零编写之参数设置_学习笔记

    1.参数设置分析 (1)open: soc_pcm_open 依次调用cpu_dai, dma, codec_dai, machine的open或startup函数 只在dma的open函数里添加参数 ...

  10. java mybatisGenerator with velocity

    mybatisGenerator + velocity 模板生成dao+ mapper,并将mysql命名规范的table name + column -> java命名规范的 Class na ...