#ode0191. 跳格子游戏[E卷 100分]

跳格子游戏[E卷 100分]

题目描述

地上共有N个格子,你需要跳完地上所有的格子,但是格子间是有强依赖关系的,跳完前一个格子后,后续的格子才会被开启,格子间的依赖关系由多组steps数组给出,steps[0]表示前一个格子,steps[1]表示steps[0]可以开启的格子:比如[0,1]表示从跳完第0个格子以后第1个格子就开启了,比如[2,1],[2,3]表示跳完第2个格子后第1个格子和第3个格子就被开启了。请你计算是否能由给出的steps数组跳完所有的格子,如果可以输出yes,否则输出no。说明:1.你可以从一个格子跳到任意一个开启的格子2.没有前置依赖条件的格子默认就是开启的3.如果总数是N,则所有的格子编号为[0,1,2,3…N-1]连续的数组

输入描述

  • 输入一个整数N表示总共有多少个格子,接着输入多组二维数组steps表示所有格子之间的依赖关系

  • 1 ≤ N < 500 step[i].length = 2 0 ≤ step[i][0],step[i][1] < N

输出描述

  • 如果能按照steps给定的依赖顺序跳完所有的格子输出yes,否则输出no。

用例1

输入

3
0 1
0 2

输出

yes

用例2

输入

2
1 0
0 1

输出

no

用例3

输入

6
0 1
0 2
0 3
0 4
0 5

输出

yes

用例4

输入

5
4 3
0 4
2 1
3 2

输出

yes