典型博弈論問題:
問題模型:有兩堆各若干個物品,兩個人輪流從某一堆或同時從兩堆中取同樣多的物品,規定每次至少取一個,多者不限,最後取光者得勝。
解決思路:A:設(ai,bi)(ai ≤bi ,i=0,1,2,…,n)表示兩堆物品的數量並稱其爲局勢,如果甲面對(0,0),那麼甲已經輸了,這種局勢我們稱爲奇異局勢。前幾個奇異局勢是:(0,0)、(1,2)、(3,5)、(4,7)、(6,10)、(8,13)、(9,15)、(11,18)、(12,20)。任給一個局勢(a,b),如下公式判斷它是不是奇異局勢: ak =[k(1+√5)/2],bk= ak + k (k=0,1,2,…,n 方括號表示取整函數)-
[1582] 比賽喫雞腿
- 時間限制: 1000 ms 內存限制: 65535 K
- 問題描述
-
集訓要結束了大家準備好好喫一頓,喫什麼呢,就決定是雞腿了現在有兩大桶雞腿非常非常大的桶,分別有n,m個雞腿,超神和性神決定來一個喫雞腿大賽,他可以從一個桶裏拿雞腿或兩個桶裏一起那相同數量的雞腿,誰先喫完所有雞腿就是勝利,超神決定他先開始喫,問他能獲勝嗎
- 輸入
-
每行輸入n,m(0<n,m<100000000)
- 輸出
-
每行輸出一個數'1'代表獲勝'0'代表失敗
- 樣例輸入
-
2 1 8 4
- 樣例輸出
-
0 1
- 提示
-
無
- 來源
-
本站或者轉載
#include<iostream>
using namespace std;
int main(){
int n,m;
while(cin>>n>>m){
if(n%(m+1)==0||m%(n+1)==0) cout<<"0"<<endl;
else cout<<"1"<<endl;
}
return 0;
}