[CSP2019]加工零件
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

 凯凯的工厂正在有条不紊地生产一种神奇的零件,神奇的零件的生产过程自然也很 神奇。工厂里有 𝑛 位工人,工人们从 编号。某些工人之间存在双向的零件传送带。保证每两名工人之间最多只存在一条传送带。
 如果 𝑥 号工人想生产一个被加工到第 阶段的零件,则所有与 𝑥 号工人 有传送带直接相连的工人,都需要生产一个被加工到第 𝐿 −1 阶段的零件(但 𝑥 号工 人自己无需生产第 𝐿 −1 阶段的零件)。
 如果 𝑥 号工人想生产一个被加工到第 1 阶段的零件,则所有与 𝑥 号工人有传送 带直接相连的工人,都需要为 𝑥 号工人提供一个原材料。
 轩轩是 1 号工人。现在给出 𝑞 张工单,第 𝑖 张工单表示编号为 𝑎_𝑖 的工人想生产 一个第 𝐿_𝑖阶段的零件。轩轩想知道对于每张工单,他是否需要给别人提供原材料。他 知道聪明的你一定可以帮他计算出来!

输入描述:

第一行两个正整数 𝑛,𝑚 和 𝑞,分别表示工人的数目、传送带的数目和工单的数目。
接下来 𝑚 行,每行两个正整数 𝑢 和 𝑣,表示编号为 𝑢 和 𝑣 的工人之间存在一条零 件传输带。保证 𝑢 ≠ 𝑣。
接下来 𝑞 行,每行两个正整数 𝑎 和 𝐿,表示编号为 𝑎 的工人想生产一个第 𝐿 阶段 的零件。

输出描述:

共 𝑞 行,每行一个字符串 “Yes” 或者 “No”。如果按照第 𝑖 张工单生产,需要编号为 1 的轩轩提供原材料,则在第 𝑖 行输出 “Yes”;否则在第 𝑖 行输出 “No”。注意输出不含引号。
示例1

输入

复制
3 2 6 
1 2 
2 3 
1 1 
2 1 
3 1 
1 2 
2 2 
3 2

输出

复制
No 
Yes 
No 
Yes 
No 
Yes

说明

编号为 1 的工人想生产第 1 阶段的零件,需要编号为 2 的工人提供原材料。 
编号为 2 的工人想生产第 1 阶段的零件,需要编号为 1 和 3 的工人提供原材料。 
编号为 3 的工人想生产第 1 阶段的零件,需要编号为 2 的工人提供原材料。 
编号为 1 的工人想生产第 2 阶段的零件,需要编号为 2 的工人生产第 1 阶段的零件,需要编号为 1 和 3 的工人提供原材料。 
编号为 2 的工人想生产第 2 阶段的零件,需要编号为 1 和 3 的工人生产第 1 阶段 的零件,他/她们都需要编号为 2 的工人提供原材料。 
编号为 3 的工人想生产第 2 阶段的零件,需要编号为 2 的工人生产第 1 阶段的零 件,需要编号为 1 和 3 的工人提供原材料。 
 

示例2

输入

复制
5 5 5 
1 2 
2 3 
3 4 
4 5 
1 5 
1 1 
1 2 
1 3 
1 4 
1 5

输出

复制
No 
Yes 
No 
Yes 
Yes

说明

编号为 1 的工人想生产第 1 阶段的零件,需要编号为 2 和 5 的工人提供原材料。 
编号为 1 的工人想生产第 2 阶段的零件,需要编号为 2 和 5 的工人生产第 1 阶段 的零件,需要编号为 1,3,4 的工人提供原材料。 
编号为 1 的工人想生产第 3 阶段的零件,需要编号为 2 和 5 的工人生产第 2 阶段的零件,需要编号为 1,3,4 的工人生产第 1 阶段的零件,需要编号为 2,3,4,5 的工人提供原材料。 
编号为 1 的工人想生产第 4 阶段的零件,需要编号为 2 和 5 的工人生产第 3 阶段 的零件,需要编号为 1,3,4 的工人生产第 2 阶段的零件,需要编号为 2,3,4,5 的工人生产 第 1 阶段的零件,需要全部工人提供原材料。 
编号为 1 的工人想生产第 5 阶段的零件,需要编号为 2 和 5 的工人生产第 4 阶段 的零件,需要编号为 1,3,4 的工人生产第 3 阶段的零件,需要编号为 2,3,4,5 的工人生产第 2 阶段的零件,需要全部工人生产第 1 阶段的零件,需要全部工人提供原材料。 

备注:

共 20 个测试点。 

测试点 ,𝑞 = 3,𝐿 = 1。
测试点 ,𝑞 = 3,
测试点
测试点
测试点