Codeforces Global Round 1 G. Tree-Tac-Toe 题解

9 篇文章 0 订阅
1 篇文章 0 订阅

Codeforces Global Round 1 G. Tree-Tac-Toe 题解

题目

链接在这里

题目大意

有一棵树上面有 n n n个结点,其中有些结点已经有了颜色(白色),有些还没有。现在有两个人,第一个人可以将任意一个没有染色过的点染色成白色,第二个人可以将任意一个没有染色过的点染色成黑色,每人轮流操作一次。当任意三个相邻结点都处于同颜色,则该颜色的人获胜(白:第一个人,黑:第二个人)。两人都绝顶聪明,请问最终谁会获胜(White,Black,Draw)。

解题方法

正解:树上博弈论。
我们分类讨论。
首先设 a i a_i ai表示 i i i结点的度数。
我们可以发现,黑方不可胜。
我们先假设所有点都没有初始颜色。

  1. 当有一 a i a_i ai大于等于 4 4 4,则肯定是白方胜利。举例如下:
    在这里插入图片描述
    首先染 i i i结点,然后对方一定会将一个与它相连的结点染色。接着我们再染一个相邻结点,对方即使再染一个相邻结点,但我们还有一个结点,所以白方必胜。
    染色策略:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  1. 当有一 a i a_i ai等于 3 3 3,且有至少两个相邻结点不为叶子,则白方胜利。举例如下:
    在这里插入图片描述
    我们首先染 i i i点,对方肯定会染与其相邻的结点。我们染未染色的相邻结点(非叶结点),对方肯定会染最后一个相邻结点或者是与刚才那个结点相邻的结点。 然后我们就染未染过的点就胜了。白方必胜。
    染色策略:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  1. n < 3 n<3 n<3,肯定平局,因为不足 3 3 3个。

  1. 如果只有 2 2 2个度数为 3 3 3的点,其他点的度数都是小于 3 3 3,且 n n n为奇数,白方必胜。举例如下:
    在这里插入图片描述
    我们先染 2 2 2号点,那么对方必然染 1 1 1号点(否则会输)。然后我们再染 4 4 4号点,对方必然染 3 3 3号点。然后我们再染 5 5 5号点就行了,最后一定可以获胜。白方必胜。
    染色策略:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    也就是当 n n n为奇数时,我们显然偶数号结点,然后对方会染奇数号,最后剩余一个结点我们将它染色,然后就会必胜。

  1. 考虑操作之前已有染色结点。当 n = 3 n=3 n=3,其中已染色的白点已经大于等于 2 2 2时,白方必胜;否则平局。

  1. 如果有一个结点操作之前为白色,我们将它拆分为四个结点。举例如下:
    在这里插入图片描述
    其中原来的点为 1 1 1,然后构造 2 ′ , 3 ′ , 4 ′ 2',3',4' 2,3,4,其中我们只需存 2 ′ 2' 2的度数,因为下面的度数不影响答案。
    拆点过后,只需做一遍 1 , 2 , 4 1,2,4 1,2,4即可(见上)。

这道题目其实不难,只要用笔在草稿纸上写一下情况并分类讨论即可。时间复杂度 O ( ∑ n ) O(\begin{aligned}\sum n\end{aligned}) O(n)

总结

以后做博弈论这类的题目,思路是分类讨论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值