Wythoff Game(暴力列舉)

2021-06-25 19:16:31 字數 1766 閱讀 5985

wythoff game

時間限制:

1000

ms | 

記憶體限制:

65535

kb

難度:

1

描述

最近

zkc同學在學博弈,學到了乙個偉大的博弈問題

--威佐夫博弈。

相信大家都學過了吧?沒學過?沒問題。我將要為你講述一下這個偉大的博弈問題。

有兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子。

遊戲規定,每次有兩種不同的取法:

一是可以在任意的一堆中取走任意多的石子;

二是可以在兩堆中同時取走相同數量的石子。

最後把石子全部取完者為勝者。

我們今天要做的是求前

n個必敗態。

什麼是必敗態?比如我們把(a,

b)稱為一種狀態,a,

b分別為兩堆石子中所剩的數目。如果

a=0,

b=0,我們說該種狀態為必敗態,因為我不能再進行遊戲,即使是可以進行,那也是必敗的,你知道,遊戲的我們都是非常聰明的。(

0,0)(

1,2)(

3,5)

...都是必敗態,我們今天要做的就是求前

n個必敗態。不會?好吧!

我再告訴你:假設第

n個必敗態為(a,

b)a為前

n-1個必敗態中沒有出現的最小自然數,

b=a+n

。這下大家應該明白了吧。好吧,我們的任務就的要前

n個必敗態。規定第

0個必敗態為(

0,0)。

輸入

多組資料。

輸入為乙個數n(

0<=n<=100000

)。

輸出

按照要求求出前

n個必敗態。輸出格式看下面樣例。

樣例輸入

3

1

樣例輸出

(0,0)(1,2)(3,5)(4,7)

(0,0)(1,2)

提示

注意:每種情況中間沒有空格

思路:

就是運用的威佐夫博弈的原始定義。bk=ak+k;ak=(1+sqrt(5))/2*k;

就是簡單的暴力列舉。

**如下:

#include#includestruct sits[100100];

void f()

}int main()

puts("");

} return 0;

}

Butterfly 列舉 暴力

原題 這裡有點暴力的感覺,但是有乙個卡資料,所以這裡加了一點點優化就ac了。先得到每乙個點的,以此點向左上角 zs 走,右上角 ys 走,左下角 zx 走,右下角 yx 走分別可以走多少個 x 再進行判讀以這個點為中心的左右兩邊 l 是否是大於等於本應該有的長度。這裡有乙個小優化,就是求出最大的 l...

10 暴力列舉

暴力是一種有著特殊美學意義的事物,對於許多東西,在需要進行計算的時候,將其所有的組合給排列出來也是一種很好的選擇,今天的題目,是乙個希望計算火柴可以擺出的等式的個數 題目如下 挺麻煩的地方在於,每乙個數需要的火柴數其實是沒有規律的,在想要得到乙個等式的話,就要有可以將所有火柴轉換成數字的乙個陣列 於...

暴力列舉 烤雞

現在,hanke 想要知道,如果給你乙個美味程度 n 請輸出這 10 種配料的所有搭配方案。乙個正整數 n,表示美味程度。第一行,方案總數。第二行至結束,10 個數,表示每種配料所放的質量,按字典序排列。如果沒有符合要求的方法,就只要在第一行輸出乙個 0。輸入樣例 輸出樣例 101 1 1 1 1 ...