首页 > 其他 > 详细

制霸西科大计划:poweroj 1004 分花生游戏(博弈论)

时间:2019-10-23 20:37:03      阅读:129      评论:0      收藏:0      [点我收藏+]

1004: 分花生游戏 (博弈论)

我们可以假设小谭拿了第一堆即m或者n,然后我们对第二堆展开讨论
 
第二堆简称two
 
two: 容易发现当two分成了1 | x时,先手的必胜, 所以把花生分成这样的人就会输。
 
如果数据很小 , 或者没有好的办法,我们可以尝试递推
 
f[i][j][0/1] one有i个 , two有j个 , 现在是谁先手
 
f[i][j][0] = 1 - f[i][j][1]
 
f[i][j][1] = f[t][k][0] | f[t][k][0] | ... ;
 
或者记搜
 
正解:
博弈论~~
 
从递推中我们知道在j可以分的那么多种方案中,只要有一种是必胜,那么就是必胜的
 
因此先手必胜的情况就很简单了~~哈哈,可惜我们不是先手
 
于是(不论打表还是顺推都可以)得到
 
如果存在两堆都为先手赢,那么这一堆就是后手赢 。
 
只要分成的两堆都不一样或者两堆都为先手输
那么这一堆就是先手赢
 
n和m不知道谁是第一堆哦~
ans = n的情况+m的情况
下面偷懒,以n为第一堆
(n-1)%5 == 3 或 4 或 0 都输
 
over~快乐每一天~~~

制霸西科大计划:poweroj 1004 分花生游戏(博弈论)

原文:https://www.cnblogs.com/cidai/p/11728521.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!