有趣算法题:取5球策略
来源:互联网 发布:二手域名交易平台 编辑:程序博客网 时间:2024/05/23 15:39
有100个球,甲乙两人轮流取,每次必须且只能取1到5个,最后一个取球的输。若甲先取,有无必胜策略?
分析:
如果总球数为1,第一个就是最后一个必输。
如果总球数为2,3,4,5,6,甲取1,2,3,4,5个,乙只能取剩下的一个,存在必胜策略。
如果总数为7,无论甲如何取(1,2,3,4,5),乙只要取(5,4,3,2,1)就可以留一个给甲,存在乙必胜策略。
结论:
如果总个数满足:
sum = 6*n + 1
不管甲每次取几个(x),乙在甲取后只要取(6-x)个,就可以两人总共都取n次,最后剩一个给甲(先手)。
面对6*n+1的境地就是必输境地,甲先手取,就要构造6*n+1境地给乙。
回到题目中,甲的必胜策略为:
第1次取3个,留97给乙(97 = 6*16 + 1);
第2次至17次,乙取过之后x个,甲取6-x个;
最后剩1个,刚好到乙的顺序取球。
总结:
甲乙总共各取17次,第1次甲取3个,中间16次,每次甲乙共取6个,最后1次乙取最后一个:
100 = 3 + 16 * 6 + 1
0 0
- 有趣算法题:取5球策略
- 有趣的算法题
- 有趣的算法题
- 一道有趣的算法题
- 一道有趣的算法题
- 几个有趣的算法题
- 有趣的想法算法题
- 一道有趣的算法题。。。
- 一个有趣的算法题
- 【算法题】有趣的数字
- 【算法题】有趣的排序
- 取球算法
- 算法题:取近似值
- 一道有趣的数字算法题
- 几道有趣的算法题
- 一个有趣的小学生算法题
- 一道有趣的面试算法题
- 一道有趣的GOOGLE算法题
- JAVA中final
- SDUTOJ 1466--双向队列
- 布隆过滤器
- HDU 3336 Count the string
- 关于NHibernate实体和hbm.xml的那些错误
- 有趣算法题:取5球策略
- Sublime Text3好用的插件推荐
- 2014 ACM/ICPC Asia Regional Anshan Online HDU 4998 HDU 5000 HDU 5001 HDU 5003
- AVL树(平衡二叉查找树)
- poj 3259 Wormholes
- JAVA实例数组声明与定义
- 图片在容器中水平居中css
- 【NOIP模拟】20140817 题解 & 总结
- Remove Duplicates from Sorted List