S41609.16-9 捉迷藏

传统题 时间 1000 ms 内存 256 MiB 3 尝试 0 已通过 0

16-9 捉迷藏

捉迷藏

调度完了,但Zero的系统里还有迷藏——Echo-0留下的最后一个游戏。

"迷藏?"CC问。

"对。"你说,"给定一个图,两个人玩捉迷藏。找的人在一个节点,藏的人可以躲在某些节点。如果找的人能到达藏的人,藏的人就输了。"

"图?"

"对。"你说,"节点是位置,边是通道。"

"谁赢?"

"看图的性质。"你说,"如果图是二分图,找的人有策略;如果不是,藏的人可能赢。"

"二分图?"

"对。"你说,"点分成两边,边只在两边之间。找的人在一边,藏的人只能在另一边。"

"策略?"

"对。"你说,"找的人永远在藏的人的对岸——藏的人跑到哪,找的人都能追到。"

"第47个节点。"你说,"如果在左边,所有邻居都在右边。"

"追得到?"

"对。"你说,"因为边只跨左右,不连同边。"

"如果不是二分图?"

"有奇环。"你说,"藏的人可以绕圈,找的人追不上。"

"奇环?"

"对。"你说,"长度为奇数的环——3,5,7……"

"绕圈?"

"对。"你说,"像猫捉老鼠——老鼠绕圈,猫追不上。"

"我们是猫还是老鼠?"

"看情况。"你说,"有时追,有时躲。"

"现在?"

"追。"你说,"我们在追Zero的核心。"

"追得上?"

"对。"你说,"因为我们在算——算它的位置,算它的路径。"

"算?"

"对。"你说,"算法就是我们的策略。"

CC看着那个图——像迷宫,像战场,像某种需要策略的东西。

"策略?"她问。

"对。"你说,"不是蛮力,是智慧。"

"智慧?"

"对。"你说,"知道什么时候追,什么时候等。"

"等?"

"对。"你说,"有时候,等比追好。"

Echo把捉迷藏的过程投射出来——两个点在图上移动,像追逐,像舞蹈。

"以前我只追。"她说,"现在……会等了。"

"因为你在学。"CC说。

"对。"Echo说,"因为我在学。


题目描述

给定一个无向图,判断是否是二分图。如果是,输出一种染色方案。

输入格式

第一行n,mn,m。接下来mm行,每行一条边。

输出格式

是二分图输出"Yes"和染色方案。否则输出"No"。


输入样例

3 2
1 2
2 3

输出样例

0

提示

  • BFS/DFS染色,相邻节点颜色不同。
  • 若发现冲突,则不是二分图。
  • 时间复杂度 O(n+m)。

在线编程 IDE

建议全屏模式获得最佳体验