题目名称 2256. 树上的游戏
输入输出 treegame.in/out
难度等级 ★★
时间限制 2000 ms (2 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravatarmouse 于2016-04-19加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:19, 提交:46, 通过率:41.3%
Gravatar铁策 100 2.150 s 6.60 MiB C++
Gravatarstone 100 2.355 s 10.23 MiB C++
GravatarZayin 100 2.478 s 19.20 MiB C++
GravatarZXCVBNM_1 100 2.505 s 9.66 MiB C++
Gravatar_Horizon 100 2.516 s 6.42 MiB C++
Gravatarasddddd 100 2.764 s 6.72 MiB C++
GravatarKZNS 100 3.072 s 4.52 MiB C++
GravatarOstmbh 100 3.313 s 4.31 MiB C++
Gravatardebug 100 3.328 s 29.54 MiB C++
Gravatardebug 100 3.499 s 29.54 MiB C++
本题关联比赛
20160420s
关于 树上的游戏 的近10条评论(全部评论)

2256. 树上的游戏

★★   输入文件:treegame.in   输出文件:treegame.out   简单对比
时间限制:2 s   内存限制:256 MiB

【题目描述】

jmy 在大家的帮助下终于成功破解了咒语。但是他很不服气,于是又准备和 lkf 玩游戏,想要赢回来。

由于之前一直在找最小生成树,jmy 想到了一个树上的游戏:给定一棵树,lkf 先在这棵树上加一条边(可能出现重边),jmy 需要删掉其中的一条边,如果剩下的还是一棵树则 jmy 赢,否则 lkf 赢。

问题是,现在 jmy 不知道 lkf 会加哪一条边,也不知道自己应该删掉哪一条边。于是现 在 jmy 臆测出了许多种可能,作为 jmy 的好朋友,你要告诉他:如果 lkf 在编号为 x 的点和 编号为 y 的点之间加一条边,jmy 删掉第 z 条边(边按照输入的顺序编号,不包括新加的边)是否能赢。

【输入格式】

第一行一个正整数 n,表示节点个数。

接下来 n-1 行,每行两个正整数 x,y,表示原来树上存在一条连接编号为 x 的节点和编号为 y 的节点的边。

第 n+1 行一个正整数 Q,表示询问次数。

接下来 Q 行,每行三个正整数 x,y,z,表示一个询问(含义如题所示)。

【输出格式】

输出共 Q 行。对于每一个询问输出一行,如果 lkf 会赢就输出”YES”,否则输出”NO”。

【样例输入】


5

1 2

2 3

2 4

4 5

3

2 5 3

2 3 1

1 5 2


【样例输出】


NO

YES

YES


【提示】

【数据规模】

对于 20%的数据,保证 n,Q≤1,000;

对于另外 20%的数据,保证 n,Q≤10,000 且树为随机生成;

对于 70%的数据,保证 n,Q≤200,000;

对于 100%的数据,保证 n≤200,000,Q≤2,000,000。

【来源】

在此键入。