#6935. CSP-J 2019 加工零件(work)T4

CSP-J 2019 加工零件(work)T4

当前没有测试数据。

加工零件(work)

程序文件名:work.cpp / work.c / work.pas 输入文件名:work.in 输出文件名:work.out

问题描述

凯凯的工厂正在有条不紊地生产一种神奇的零件,神奇的零件的生产过程自然也很神奇。

工厂里有 (n) 位工人,工人们从 (1) 到 (n) 编号。某些工人之间存在双向的零件传送带,保证每两名工人之间最多只存在一条传送带。

如果 (x) 号工人想生产一个被加工到第 (L)((L>1))阶段的零件,则所有与 (x) 号工人有传送带直接相连的工人,都需要生产一个被加工到第 (L-1) 阶段的零件,但 (x) 号工人自己无须生产第 (L-1) 阶段的零件。

如果 (x) 号工人想生产一个被加工到第 (1) 阶段的零件,则所有与 (x) 号工人有传送带直接相连的工人,都需要为 (x) 号工人提供一个原材料。

轩轩是 (1) 号工人。现在给出 (q) 张工单,第 (i) 张工单表示编号为 (a_i) 的工人想生产一个第 (L_i) 阶段的零件。

轩轩想知道,对于每张工单,他是否需要给别人提供原材料。他知道聪明的你一定可以帮他计算出来!

输入格式

输入文件名为 work.in。

第一行包含三个正整数 (n,m,q),分别表示工人的数目、传送带的数目和工单的数目。

接下来 (m) 行,每行包含两个正整数 (u,v),表示编号为 (u) 和 (v) 的工人之间存在一条零件传送带。保证 (u\ne v)。

接下来 (q) 行,每行包含两个正整数 (a,L),表示编号为 (a) 的工人想生产一个第 (L) 阶段的零件。

输出格式

输出文件名为 work.out。

共输出 (q) 行,每行一个字符串 Yes 或者 No。

  • 如果按照第 (i) 张工单生产,需要编号为 (1) 的轩轩提供原材料,则在第 (i) 行输出 Yes。
  • 否则,在第 (i) 行输出 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) 的工人想生产第 (1) 阶段的零件,需要编号为 (2) 的工人提供原材料。

  2. 编号为 (2) 的工人想生产第 (1) 阶段的零件,需要编号为 (1) 和 (3) 的工人提供原材料。

  3. 编号为 (3) 的工人想生产第 (1) 阶段的零件,需要编号为 (2) 的工人提供原材料。

  4. 编号为 (1) 的工人想生产第 (2) 阶段的零件,需要编号为 (2) 的工人生产第 (1) 阶段的零件,进而需要编号为 (1) 和 (3) 的工人提供原材料。

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

  6. 编号为 (3) 的工人想生产第 (2) 阶段的零件,需要编号为 (2) 的工人生产第 (1) 阶段的零件,进而需要编号为 (1) 和 (3) 的工人提供原材料。

样例文件见选手目录下的 work/work1.in 和 work/work1.ans。

输入输出样例 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) 的工人想生产第 (1) 阶段的零件,需要编号为 (2) 和 (5) 的工人提供原材料。

  2. 编号为 (1) 的工人想生产第 (2) 阶段的零件:

    • 需要编号为 (2) 和 (5) 的工人生产第 (1) 阶段的零件;
    • 需要编号为 (1,3,4) 的工人提供原材料。
  3. 编号为 (1) 的工人想生产第 (3) 阶段的零件:

    • 需要编号为 (2) 和 (5) 的工人生产第 (2) 阶段的零件;
    • 需要编号为 (1,3,4) 的工人生产第 (1) 阶段的零件;
    • 需要编号为 (2,3,4,5) 的工人提供原材料。
  4. 编号为 (1) 的工人想生产第 (4) 阶段的零件:

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

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

样例文件见选手目录下的 work/work2.in 和 work/work2.ans。

输入输出样例 3

见选手目录下的 work/work3.in 和 work/work3.ans。

数据规模与约定

共 (20) 个测试点。

对于所有测试点,保证:

1≤u,v,a≤n1\le u,v,a\le n
测试点编号 数据范围
(1\sim4) (1\le n,m\le1000),(q=3),(L=1)。
(5\sim8) (1\le n,m\le1000),(q=3),(1\le L\le10)。
(9\sim12) (1\le n,m,L\le1000),(1\le q\le100)。
(13\sim16) (1\le n,m,L\le1000),(1\le q\le10^5)。
(17\sim20) (1\le n,m,q\le10^5),(1\le L\le10^9)。