最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

信息学奥赛题库- 魔法石

C++ 少儿编程 1356浏览 0评论

友情提示:380元/半年,儿童学编程,就上码丁实验室

【题目描述】

幻象群岛是由$n$个孤立的岛屿构成。岛屿之间有一些残破的石桥,而桥心的石墩上,就有可能镶嵌着上古魔法石。约翰尼可以通过这些石桥,从一座岛跑到另一座岛,如果岛上恰好有魔法石,他就可以顺便收集。但是由于这些石桥实在是太残破了,约翰尼经过之后,石桥就会崩塌,不能再次通过。(由于约翰尼踩过的部分很快就会崩塌,所以他也不能先跑到桥心,然后原路返回)。

约翰尼现在处在岛a,而岛b上则有一个传送门,只有在那里,约翰尼才能安全地离开幻象群岛。约翰尼想知道,他能顺利地收集到至少一块上古魔法石,并安全离开吗?

【输入】

输入包含多组测试数据,第一行一个整数$T$表示测试数据的组数。

对于每组数据第一行包含两个整数$n$和$m$分别表示幻象群岛中岛屿的数量和桥的数量。

接下来$m$行,每行三个整数$x,y,c$。其中$x$和$y$表示桥两端的岛屿的编号,$c=1$时表示桥心有一块上古魔法石。

接下来一行两个数$src$和$dst$分别表示约翰尼当前所处的岛屿和传送门所在的岛屿。

【输出】

输出包含$T$行,对于每一组数据,输出“$YES$”表示约翰尼可以收集到魔法石并安全离开,反之输出“$NO$”(不包括引号)。

【输入样例】

3
6 7
1 2 0
2 3 0
3 1 0
3 4 1
4 5 0
5 6 0
6 4 0
1 6
	
5 4
1 2 0
2 3 0
3 4 0
2 5 1
1 4

5 6
1 2 0
2 3 0
3 1 0
3 4 0
4 5 1
5 3 0
1 2

【输出样例】

YES
NO
YES

【提示】

【数据规模】

对于10%的数据,$n,m≤10$;

对于40%的数据,$n,m≤5000$;

对于100%的数据,$n,m≤300000, T≤10$。

您必须 登录 才能发表评论!