CSU1104 盒子遊戲 博弈論

2021-08-03 01:22:19 字數 1506 閱讀 5690

有兩個相同的盒子,其中乙個裝了n個球,另乙個裝了乙個球。alice和bob發明了乙個遊戲,規則如下:

alice和bob輪流操作,alice先操作。每次操作時,遊戲者先看看哪個盒子裡的球的數目比較少,然後清空這個盒子(盒子裡的球直接扔掉),然後把另乙個盒子裡的球拿一些到這個盒子中,使得兩個盒子都至少有乙個球。如果乙個遊戲者無法進行操作,他(她)就輸了。下圖是乙個典型的遊戲:

alice

bobalice(5,

1)---

-->(2,3)

----

->(1,2)

----

->(1

,1)

面對兩個各裝乙個球的盒子,bob無法繼續操作,因此alice獲勝。你的任務是找出誰會獲勝。假定兩人都很聰明,總是採取最優策略。

輸入最多包含300組測試資料。每組資料僅一行,包含乙個整數n(2<=n<=109)。輸入結束標誌為n=0。

對於每組資料,輸出勝者的名字

234

0

alice

bobalice

這個的**很簡單明瞭,思路看**就行了

具體的思想好像是屬於博弈論的部分

#include 

#define n 10100

#define inf 0x3f3f3f3f

#define ll long long

#define mem(a,n) memset(a,n,sizeof(a))

#define fread freopen("in.txt","r",stdin)

#define fwrite freopen("out.txt","w",stdout)

using namespace std;

bool game(int n)

}return false;

}int main()

else

}return 0;

}/*****

*****

*****

*****

*****

*****

*****

*****

*****

*****

*****

*****

*****

*****

problem: 1104

user: csuzick

language: c++

result: ac

time:4 ms

memory:1688 kb

*****

*****

*****

*****

*****

*****

*****

*****

*****

*****

*****

*****

*****

*****/

1104 盒子遊戲(簡單博弈)

submit page summary time limit 1 sec memory limit 128 mb submitted 756 solved 359 有兩個相同的盒子,其中乙個裝了n個球,另乙個裝了乙個球。alice和bob發明了乙個遊戲,規則如下 alice和bob輪流操作,alic...

SDUT 3004 盒子遊戲(博弈)

題意 2人博弈問題。有兩個相同的盒子,其中乙個裝了 n 個球,另乙個裝了乙個球。alice 和 bob 發明了乙個遊戲,規則如下 alice 和 bob 輪流操作,alice 先操作。每次操作時,遊戲者先看看哪個盒子裡的球的數目 比較少,然後清空這個盒子 盒子裡的球直接扔掉 然後把另乙個盒子裡的球拿...

NYOJ 題目562盒子遊戲(找規律,博弈)

時間限制 1000 ms 記憶體限制 65535 kb難度 3 描述 有兩個相同的盒子,其中乙個裝了 n 個球,另乙個裝了乙個球。alice 和 bob 發明了乙個遊戲,規則如下 alice 和 bob 輪流操作,alice 先操作。每次操作時,遊戲者先看看哪個盒子裡的球的數目比較少,然後清空這個盒...