考虑在无向图G中进行以下游戏。有两个玩家,红色玩家R和蓝色玩家B。最初,G的所有边都未着色。两个玩家交替用自己的颜色对未着色的边进行着色,直到所有边都被着色。B的目标是在最后,蓝色边形成G的一个连通生成子图。连通生成子图是包含图G所有顶点的连通子图。R的目标是阻止B实现他的目标。
假设R开始游戏。假设两个玩家都以最聪明的方式进行游戏。你的任务是找出B是否会赢得游戏。
输入: 每个测试用例都以两个整数n(1 <= n <= 10)和m(0 <= m <= 30)开头,表示图中顶点和边的数量。所有顶点从0到n-1编号。 然后是m行。每行包含两个整数p和q(0 <= p,q < n),表示顶点p和顶点q之间存在一条边。
输出: 对于每个测试用例,请打印一行,其中要么是“YES”,要么是“NO”,表示B是否会赢得游戏。
我的想法: 如果我们可以找到图的两个不相交的生成树,则玩家B将赢得比赛。否则,A获胜。 “两个不相交的生成树”意味着两棵树的边集是不相交的。
证明: 如果图G中存在两个不相交的生成树,则这两棵树形成一个连通的生成子图,其中所有顶点都被覆盖。此时,B可以在游戏结束时选择所有蓝色边,从而赢得比赛。 否则,对于任何一组生成树,它们的边集都至少共享一个公共边。因此,R可以选择在每次移动中选择公共边,从而防止B获胜。因此,A将赢得比赛。
假设R开始游戏。假设两个玩家都以最聪明的方式进行游戏。你的任务是找出B是否会赢得游戏。
输入: 每个测试用例都以两个整数n(1 <= n <= 10)和m(0 <= m <= 30)开头,表示图中顶点和边的数量。所有顶点从0到n-1编号。 然后是m行。每行包含两个整数p和q(0 <= p,q < n),表示顶点p和顶点q之间存在一条边。
输出: 对于每个测试用例,请打印一行,其中要么是“YES”,要么是“NO”,表示B是否会赢得游戏。
我的想法: 如果我们可以找到图的两个不相交的生成树,则玩家B将赢得比赛。否则,A获胜。 “两个不相交的生成树”意味着两棵树的边集是不相交的。
证明: 如果图G中存在两个不相交的生成树,则这两棵树形成一个连通的生成子图,其中所有顶点都被覆盖。此时,B可以在游戏结束时选择所有蓝色边,从而赢得比赛。 否则,对于任何一组生成树,它们的边集都至少共享一个公共边。因此,R可以选择在每次移动中选择公共边,从而防止B获胜。因此,A将赢得比赛。
0 2
和2 0
? - IVlad