[hdu1847]博弈,推理
2015-08-03 22:58
274 查看
题意:一堆石子,有n个,两个人轮流取,每次都只能取2的幂次方个数,不能取的人输
思路:首先0是必败态,2的所有幂次都是必胜态。由于选的数模3只能是1或2,恰好又都是2的幂次,0,、3都为必败态,猜想3的所有倍数也为必败态,证明如下:设状态为x=3k,先手任选一个t,那么(x-t)%3不是1就是2,后手就取(x-t)%3,使得先手面临的状态始终是3的倍数,并且只要先手可以取,那么后手也就可以取,所以3的倍数都是必败态。对于x=3k+p,p=1或2的状态,先手都可以将其变成必败态,即先手取p=x%3即可,因此为必胜态。
思路:首先0是必败态,2的所有幂次都是必胜态。由于选的数模3只能是1或2,恰好又都是2的幂次,0,、3都为必败态,猜想3的所有倍数也为必败态,证明如下:设状态为x=3k,先手任选一个t,那么(x-t)%3不是1就是2,后手就取(x-t)%3,使得先手面临的状态始终是3的倍数,并且只要先手可以取,那么后手也就可以取,所以3的倍数都是必败态。对于x=3k+p,p=1或2的状态,先手都可以将其变成必败态,即先手取p=x%3即可,因此为必胜态。
相关文章推荐
- TCP为什么需要3次握手与4次挥手(转载)
- RPM安装与卸载
- 犀牛——第6章对象 6.7属性的特性
- CSS+html:天涯网页仿照制作
- 设计模式-单例模式(饿汉式及懒汉式的Java实现)
- hdoj 1312 下棋(递归问题)
- StringBuffer字符串缓冲区
- storm入门教程 第四章 消息的可靠处理【转】
- 惊艳发现VS工具python项目Search Paths的应用
- 带滚动条的文本文件
- SQLite in Oracle MAF
- 开涛SpringMVC笔记
- Linux写时拷贝技术(copy-on-write)
- C# Prase转换 & Convert 转换
- 鸟哥的私房菜学习笔记十三 关于正则表达式
- remove element
- myeclipse+tomcat+数据库配置
- scala学习笔记(一)
- UVALive 4764 dp
- Storm入门教程 第三章Storm集群安装部署步骤[转]