题目名称 3288. [CSP 2019J]零件加工
输入输出 csp2019pj_work.in/out
难度等级 ★★
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 20
题目来源 Gravatarsyzhaoss 于2019-11-16加入
开放分组 全部用户
提交状态
分类标签
NOIP/CSP BFS 最短路
分享题解
通过:12, 提交:87, 通过率:13.79%
Gravatarsyzhaoss 100 0.285 s 6.86 MiB C++
Gravatarimpossible 100 0.382 s 7.60 MiB C++
Gravatarimpossible 100 0.428 s 7.58 MiB C++
Gravatarimpossible 100 0.448 s 10.94 MiB C++
GravatarEvolt 100 0.465 s 16.33 MiB C++
Gravatar1116 100 0.472 s 16.33 MiB C++
Gravatarムラサメ 100 1.969 s 10.69 MiB C++
Gravatarznc 100 2.058 s 11.17 MiB C++
Gravatar0429 100 2.100 s 9.93 MiB C++
Gravatar00000 100 2.283 s 37.31 MiB C++
关于 零件加工 的近10条评论(全部评论)
dijkstra 大法好!!!
Gravatarムラサメ
2020-11-01 12:07 3楼
回复 @霖:404 :
?
Gravatarimpossible
2020-10-16 20:51 2楼
沙发
Gravatar霖:404
2019-12-10 20:17 1楼

3288. [CSP 2019J]零件加工

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

【题目描述】

凯凯的工厂正在有条不紊地生产一种神奇的零件,神奇的零件的生产过程自然也很神奇。工厂里有 $n$ 位工人,工人们从$1 ∼ n$ 编号。某些工人之间存在双向的零件传送带。保证每两名工人之间最多只存在一条传送带。

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

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

轩轩是 1 号工人。现在给出$q$张工单,第$i$张工单表示编号为$a_i$的工人想生产一个第$L_i$阶段的零件。轩轩想知道对于每张工单,他是否需要给别人提供原材料。他知道聪明的你一定可以帮他计算出来!

【输入格式】

  第一行两个正整数$n,m$和$q$,分别表示工人的数目、传送带的数目和共单的数目。

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

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

【输出格式】

  共$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

【样例输出1】

No
Yes
No
Yes
No
Yes 

【输入输出样例1说明】

     

编号为 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 

【样例输出2】

No
Yes
No
Yes
Yes

【输入输出样例2说明】

      

编号为 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个测试点。

$1\leq u,v,a\leq n$。

测试点$1\sim 4$,$1\leq n,m\leq 1000,q=3,L=1$。

测试点$5\sim 8$,$1\leq n,m\leq 1000,q=3,1\leq L\leq 10$。

测试点$9\sim 12$,$1\leq n,m,L\leq 1000,1\leq q\leq 100$。

测试点$13\sim 16$,$1\leq n,m,L\leq 1000,1\leq q\leq 10^5$。

测试点$17\sim 20$,$1\leq n,m,q\leq 10^5,1\leq L\leq 10^9$。