2017 acm icpc 上海final L 题(博弈)

博客介绍了ACM ICPC上海决赛中的一道博弈题目,玩家轮流在空格中放置字母S或O,形成SOS序列者获胜。先手在特定情况下必输,通过分析得出,当格子数为偶数时,后手有获胜策略;当格子数为奇数且大于等于16时,先手必胜。小于16时,奇数先手赢,偶数为平局。文章强调了在解决博弈问题时,理解格局和寻找规律的重要性。
摘要由CSDN通过智能技术生成

emmmmm大致题意就是给你连续的n个格子,编号1到n,开始所有的格子都是空的,两个人轮流往空格子里放字母s或者o,谁先使得相邻的三个格子里字母为sos则谁获胜,假设A先手,B后手问谁会赢,如果所有格子都被填满了但是没有出现sos则认为两人平局。

思路:

一开始看到这题本来我想用状压啊,sg函数啊什么的去写,但是gg,于是就先扔一旁了,后来卡题的时候看榜单发现有一些奇奇怪怪的队伍过了这题,于是就觉得这题会不会是个傻逼题,然后对着样例自己和自己下,发现如果此时格局为S _ _ S时,谁先手谁必输,所以如果当前先手能赢,那么必定是要去构造这样的情况,然后留给后手。样例很给力呀,已经把最基本的情况给我们了,当格子数为7的时候,先手第一步在4号格子放s,接下来不论对方怎么弄,先手都能构造出一个S _ _ S的情况留给对方,所以先手必胜,小于7的格子数,必定是平局。 接下来慢慢增加格子的数量,不难发现,当格子数为偶数时,先手不能取胜,所以我们尽量去打平局的情况(当时推了一下前面的偶数情况先手都能打平然后就没再考虑了。。背锅),但如果是奇数,先手还是在最中间的位置放个s,然后局面就分成了左半部和右半部,然后接下来一定能构造出一个S _ _ S的局面并且满足剩余空格子的数量为偶数且轮到对方走,那么最后留给对方的一定是一个S _ _ S局面,所以先手必胜。当时想到这里我就控制不住自己了然后猜了一下偶数平局,奇数先手赢,上去敲了一发,然后就wa了。。。冷静下来后想想,格子数量多了怎么可能后手不会赢,而且如果就这样简单的话应该已经榜切了呀。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值