【发布时间】:2010-07-19 08:46:09
【问题描述】:
在无向图 G 上考虑以下游戏。有两个玩家,一个红色玩家 R 和一个蓝色玩家 B。最初 G 的所有边都是无色的。两个玩家交替用他们的颜色为 G 的未着色边缘着色,直到所有边缘都着色。 B 的目标是最终蓝色边形成 G 的连通生成子图。G 的连通生成子图是包含图 G 的所有顶点的连通子图。R 的目标是防止 B从实现他的目标。
假设 R 开始游戏。假设两个玩家都以最聪明的方式玩。你的任务是确定 B 是否会赢得比赛。
输入: 每个测试用例以一行两个整数 n ( 1
输出: 对于每个测试用例,打印一行“YES”或“NO”,表示 B 是否会赢得比赛。
例子:
3 4
0 1
1 2
2 0
0 2
输出:是
我的想法: 如果我们能在图中找到两棵不相交的生成树,那么玩家 B 就赢了。否则,A获胜。 “两棵不相交的生成树”表示两棵树的边集不相交
不知道你能否证明或反驳我的想法
【问题讨论】:
-
如果图是无向的,为什么你同时拥有边
0 2和2 0? -
这意味着两个顶点之间可能有两条或多条边
-
啊,有道理。好问题。是来自在线评委(SPOJ、UVA 等)吗?如果是,你介意链接到它吗?
-
在 Prolog 中进行暴力破解并不难,但性能会很糟糕。有人认为这有 PTIME 解决方案吗?
-
我正在考虑某种优化的蛮力算法。 10 个节点和 30 个边让我认为问题制定者期望某种蛮力解决方案。