DTOJ 4339. 游戏

题意

小AA和小YY得到了《喜羊羊和灰太狼》的电影票,都很想去观看,但是电影票只有一张,于是他们用智力游戏决定胜负,赢得游戏的人可以获得电影票。

N ∗ M N*M NM 的迷宫中有一个棋子,小AA首先任意选择棋子放置的位置。然后,小YY 和小AA轮流将棋子移动到相邻的格子里。游戏的规则规定,在一次游戏中,同一个格子不能进入两次,且不能将棋子移动到某些格子中去。当玩家无法继续移动棋子时,游戏结束,最后一个移动棋子的玩家贏得了游戏。

例如下图所示的迷宫,迷宫中表示棋子可以经过的格子,而 “#” 表示棋子不可以经过的格子:

.   #   # .~\#~\# . # #

.   .   . .~.~. . . .

#   .   # \#~.~\# # . #

若小AA将棋子放置在 ( 1 , 1 ) (1,1) (1,1),则小AA则无论如何都无法赢得游戏。

而若小AA将棋子放置在 ( 3 , 2 ) (3,2) (3,2) ( 2 , 3 ) (2,3) (2,3) ,则小AA能够贏得游戏。例如,小AA将 棋子放畀在 ( 3 , 2 ) (3,2) (3,2),小YY只能将它移动到 ( 2 , 2 ) (2,2) (2,2) ,此时小AA再将棋子移动到 ( 2 , 3 ) (2,3) (2,3), 就贏得了游戏。

小AA和小YY都是绝顶聪明的小朋友,且从不失误。小AA到底能不能赢得这场游 戏,从而得到珍贵的电影票

对于 100 % 100 \% 100% 的数据,有 1 ≤ n , m ≤ 100 1 \le n,m \le 100 1n,m100

对于 30 % 30 \% 30% 的数据, 有 1 ≤ n , m ≤ 5 1 \le n,m \le 5 1n,m5

题解

比较套路地将格子黑白染色,相邻的连边,可以得到一个二分图,问题变成有哪些点可以从它出发沿着边走必胜。
由于在二分图上走交替路的过程和匈牙利算法相似,考虑二分图最大匹配。
先考虑特殊情况:如果存在完美匹配,则不管从哪个点出发,只要对方沿着匹配边走,你最多只能沿着非匹配边走到匹配点,然后对方再走匹配边,你早晚会死的。
否则,考虑把对方逼到这种局面:从任意一个非匹配点出发,对方只能走到匹配点(否则原来不是最大匹配),然后你沿着匹配边走,对方在走只能沿着非匹配边走到一个匹配点(如果可以走到非匹配点的话,把这条路径画出来,会发现匹配数可以增加),以此类推你就win了。
于是问题转化为求哪些点可能不在最大匹配中:先求出任意一个最大匹配,把非匹配点拿去寻找可能成为非匹配的点。考虑用它所连的非匹配边去替换,则通过非匹配边连向的匹配点对应的匹配点是可以被替换掉的,新产生一个可行点后继续更新,是一个dfs的过程。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值