ACM博弈-II不平等博弈
不平等博弈
ACM博弈 - I 平等博弈 SG函数的证明
有助于不平等博弈学习的资料
- 博客 https://blog.csdn.net/wozaipermanent/article/details/81559438
- 杜教主的ppt讲稿 sureal number;
贪心博弈
例1. Alice’s Game HDU - 3544
题意:
给n块巧克力,第i块是 ni∗mi,Alice只能垂直切,切成 A∗m和B∗m,并且 A+B=n,Bob只能横切,只能切成 A∗n和B∗n,并且 A+B=m
分析:
语言表达能力有限
我们采取 HP(n,m)表示 n∗m的矩形对Alice的可切割次数的贡献,负数代表对Bob的贡献,如果所有 ∑HPi>0 ,Alice必赢, ∑HPi<=0,Bob(必赢)
对于HP(i,j) 的计算我们有如下法则
1. n∗1 的矩形贡献为n-1
2. 1∗m 的矩形贡献为-(m-1)
3. 2∗2,3∗3,4∗4..n∗n的矩形对HP的贡献为零,因为如果你首先下手切,都会给对手更多的机会,如果你能赢,你不会切这个,如果你输,那么切了这个你还会输。
4. 对于 2∗3,3∗2,5∗4...,的矩阵来说与3的状况相同,对答案的贡献都是0,首先下手都会给对手更多的机会
5. 贡献为零的有什么规律呢,我们发现原来是它们是 2k<=n<2k+1&& 2k<=m<2k+1
6. n∗2 的矩形对于Alice来说有贡献,我们每一次可以选择都切成 2∗2,3∗2的矩形,这样不会给对手机会,自己还可以增加一次切的机会,Bob也不会傻到切这个矩形,这样会给Alice更多机会,所以 n∗2的矩形,Alice 可以切 n/2−1 次
这个时候可以总结一下规律:
- 我们每一次切,都会切成 HP(i,m)=0,HP(n−i,m)>=0的 两块, HP(n,m)=HP(n−i,m)+1,递归下去 HP(n−i−j,m)=HP(n−i−j,m)+1,直到 HP(n−i−j....,m)=0,这怎么计算呢
- 我们知道 HP(n,m)=0 当且仅当 2k<=n<2k+1&& 2k<=m<2k+1
- 那么就有 HP(n,m)=n/(2k)−1