vijos1196 吃糖果遊戲 博弈論

2022-09-03 23:30:26 字數 1420 閱讀 7787

描述

matrix67和shadow正在做乙個小遊戲。

桌子上放著兩堆糖果,matrix67和shadow輪流對這些糖果進行操作。在每一次操作中,操作者需要吃掉其中一堆糖果,並且把另一堆糖果分成兩堆(可以不相等)留給對方操作。遊戲如此進行下去,糖果數會越來越少,最後必將出現這樣一種情況:某人吃掉一堆糖果後發現另一堆裡只剩一塊糖果不能再分了。遊戲規定此時該操作者吃掉最後這一塊糖果從而取勝。

這個遊戲是不公平的。對於任意一種初始狀態,總有一方有必勝策略。所謂有必勝策略是指,無論對方如何操作,自己總有辦法取勝。

matrix67和shadow將進行10次遊戲,每一次遊戲中總是matrix67先進行操作。matrix67想知道每一次遊戲中誰有必勝策略。

格式輸入格式

輸入資料一共10行,每行有兩個用空格隔開的正整數,表示一次遊戲開始時桌子上兩堆糖果分別有多少個。

對於50%的資料,這些正整數均不超過100;

對於70%的資料,這些正整數均不超過10 000;

對於100%的資料,這些正整數均不超過10 000位。

輸出格式

輸出十行字串。這些字串只能是「matrix67」或「shadow」,它們表示對應的十行輸入資料中有必勝策略的一方。

請注意大小寫。

樣例1樣例輸入1

1 11 2

1 31 4

1 52 1

2 22 3

2 42 5

樣例輸出1

matrix67

matrix67

matrix67

matrix67

matrix67

matrix67

shadow

shadow

matrix67

matrix67

限制各個測試點1s

**matrix67原創

分析:這題其實不難。與萌萌的糖果那道題類似。我還是從頭分析一下,給像我一樣的蒟蒻引路。

我們假設兩堆a,b,先吃a。

如果是a,1,顯然67勝。如果是a,2,顯然67掛了。如果是a,3,3=1+2,67還是掛。如果是a,4,4=2+2。67勝了。

如果是a,5或6,5=2+3,6=3+3,67勝。如果a,7,若7=2+5,s可以吃掉2然後分成2+3,67掛;若7=1+6,s可以拿走1然後分成3+3;

若7=2+5,s可以吃掉2然後分成2+3。所以a,7的話67必掛。如果是a,8,同7的情況67掛了。如果是a,9,恭喜9=2+7,s必掛無疑。

如果是a,10。10=2+8,於是你又贏了。

我們可以定義集合a=,b=。

考慮兩堆都大於10的情況。

(1)10*i+a,10*i+a。則67必輸。

(2)10*i+a,10*i+b,你可以吃掉10*i+a,然後把10*i+b分成兩堆10*i+a,67必勝。

(2)10*i+b,10*i+b,67必勝。

vijos1196吃糖果遊戲

matrix67和shadow正在做乙個小遊戲。桌子上放著兩堆糖果,matrix67和shadow輪流對這些糖果進行操作。在每一次操作中,操作者需要吃掉其中一堆糖果,並且把另一堆糖果分成兩堆 可以不相等 留給對方操作。遊戲如此進行下去,糖果數會越來越少,最後必將出現這樣一種情況 某人吃掉一堆糖果後發...

Vijos P1196吃糖果遊戲 組合遊戲

matrix67和shadow正在做乙個小遊戲。桌子上放著兩堆糖果,matrix67和shadow輪流對這些糖果進行操作。在每一次操作中,操作者需要吃掉其中一堆糖果,並且把另一堆糖果分成兩堆 可以不相等 留給對方操作。遊戲如此進行下去,糖果數會越來越少,最後必將出現這樣一種情況 某人吃掉一堆糖果後發...

P1196吃糖果遊戲解題報告

name p1196吃糖果遊戲 matrix67 第一次模擬賽 系列 author goal00001111 date 18 12 08 19 47 description 描述 description matrix67和shadow正在做乙個小遊戲。桌子上放著兩堆糖果,matrix67和shado...