題解 取石子遊戲(博弈)

2021-09-24 04:51:37 字數 531 閱讀 4650

題目描述

一天小明和小紅在玩取石子遊戲,遊戲規則是這樣的:

(1)本遊戲是乙個二人遊戲;

(2)有一堆石子,共有n個;

(3)兩人輪流進行;

(4)每走一步可以取走1~m個石子;

(5)最先取光石子的一方為勝。

如果遊戲的雙方使用的都是最優策略,請輸出哪個人能贏。

輸入輸入的第一行是乙個正整數c(c<=100),表示有c組測試資料。

每組輸入兩個整數n和m(1<=n,m<=1000),n和m的含義見題目描述。

輸出對於每組輸入,如果先走的人能贏,請輸出「first」,否則請輸出「second」。

樣例輸入

223 2

4 3樣例輸出

first

second

先手必勝:

當最後變成n=m+1時,不論b拿走多少,a一定贏

所以只要一開始n=k*(m+1)+c(0using namespace std;

int main()

return 0;

}

博弈 取石子遊戲

兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子。遊戲規定,每次有兩種不同的取法,一是可以在任意的一堆中取走任意多的石子 二是可以在兩堆中同時取走相同數量的石子。最後把石子全部取完者為勝者。現在給出初始的兩堆石子的數目,如果輪到你先取,假設雙方都採取最好的策略,問最後你是勝者還是敗者。inp...

簡單取石子遊戲 博弈

很坑爹的小遊戲,至於怎麼坑爹,嘎嘎 自己研究去吧 include include include include includeusing namespace std void loc int x,int y 定位游標 void welcome 建立歡迎介面 void buildmap 建立介面 v...

博弈 取 2堆 石子遊戲

題目 有兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子。遊戲規定,每次有兩種不同的取法,一是可以在任意的一堆中取走任意多的石子 二是可以在兩堆中同時取走相同數量的石子。最後把石子全部取完者為勝者。現在給出初始的兩堆石子的數目,如果輪到你先取,假設雙方都採取最好的策略,問最後你是勝者還是敗者...