1. 程式人生 > >ACM博弈-II不平等博弈

ACM博弈-II不平等博弈

文章目錄

不平等博弈

ACM博弈 - I 平等博弈 SG函式的證明

貪心博弈

例1. Alice’s Game HDU - 3544

題意:

 給n塊巧克力,第i塊是 n

i m i n_i*m_i ,Alice只能垂直切,切成 A
m B m A*m和B*m
,並且 A + B
= n A+B=n
,Bob只能橫切,只能切成 A n B n A*n和B*n ,並且 A + B = m A+B=m

分析:

語言表達能力有限

我們採取 H P ( n , m ) HP(n,m) 表示 n m n*m 的矩形對Alice的可切割次數的貢獻,負數代表對Bob的貢獻,如果所有 H P i > 0 \sum{HP_i}> 0 ,Alice必贏, H P i < = 0 \sum{HP_i} <= 0 ,Bob(必贏)
對於HP(i,j) 的計算我們有如下法則
1. n 1 n*1 的矩形貢獻為n-1
2. 1 m 1*m 的矩形貢獻為-(m-1)
3. 2 2 , 3 3 , 4 4.. n n 2*2,3*3,4*4..n*n 的矩形對HP的貢獻為零,因為如果你首先下手切,都會給對手更多的機會,如果你能贏,你不會切這個,如果你輸,那麼切了這個你還會輸。
4. 對於 2 3 , 3 2 , 5 4... , 2*3,3*2,5*4... , 的矩陣來說與3的狀況相同,對答案的貢獻都是0,首先下手都會給對手更多的機會
5. 貢獻為零的有什麼規律呢,我們發現原來是它們是 2 k < = n < 2 k + 1 2^k <= n < 2^{k+1} && 2 k < = m < 2 k + 1 2^k <= m < 2^{k+1}
6. n 2 n*2 的矩形對於Alice來說有貢獻,我們每一次可以選擇都切成 2 2 , 3 2 2*2,3*2 的矩形,這樣不會給對手機會,自己還可以增加一次切的機會,Bob也不會傻到切這個矩形,這樣會給Alice更多機會,所以 n 2 n*2 的矩形,Alice 可以切 n / 2 1 n/2-1
這個時候可以總結一下規律:

  1. 我們每一次切,都會切成 H P ( i , m ) = 0 , H P ( n i , m ) > = 0 HP(i,m) = 0,HP(n-i,m) >= 0 的 兩塊, H P ( n , m ) = H P ( n i , m ) + 1 HP(n,m) = HP(n-i,m)+1 ,遞迴下去 H P ( n i j , m ) = H P ( n i j , m ) + 1 HP(n-i-j,m) = HP(n-i-j,m)+1 ,直到 H P ( n i j . . . . , m ) = 0 HP(n-i-j....,m) = 0 ,這怎麼計算呢
  2. 我們知道 H P ( n , m ) = 0 HP(n,m) = 0 當且僅當 2 k < = n < 2 k + 1 2^k <= n < 2^{k+1} && 2 k < = m < 2 k + 1 2^k <= m < 2^{k+1}
  3. 那麼就有 H P ( n , m ) = n / ( 2 k ) 1 HP(n,m) = n/(2^{k}) - 1
程式碼看具體部落格

HDU3544

2.