hdu 2516 斐波那契數列

2021-07-12 00:09:50 字數 971 閱讀 2169

problem description

1堆石子有n個,兩人輪流取.先取者第1次可以取任意多個,但不能全部取完.以後每次取的石子數不能超過上次取子數的2倍。取完者勝.先取者負輸出"second win".先取者勝輸出"first win".

input

輸入有多組.每組第1行是2<=n<2^31. n=0退出.

output

先取者負輸出"second win". 先取者勝輸出"first win". 

參看sample output.

sample input

2

13100000

sample output

second win

second win

first win

source

ecjtu 2008 autumn contest

有一堆個數為n的石子,遊戲雙方輪流取石子,滿足:

1)先手不能在第一次把所有的石子取完;

2)之後每次可以取的石子數介於1到對手剛取的石子數的2倍之間(包含1和對手剛取的石子數的2倍)。

約定取走最後乙個石子的人為贏家

這個遊戲叫做fibonacci nim,肯定和fibonacci數列:

f[n]:1,2,3,5,8,13,21,34,55,89,…

有密切的關係。如果試驗一番之後,可以猜測:先手勝當且僅當n不是fibonacci數。換句話說,必敗態構成fibonacci數列。

#include #include #include #include#include#include#include#include#define ll long long

using namespace std;

ll f[60];

int main()

if(flag==1)

cout<<"second win"<

hdu 2516 斐波那契博弈)

思路 網上大牛說是著名的斐波那契博弈模型 首先 2個石頭肯定是必敗點,3個石頭也是必敗點,然後開始看後面,4個石頭時,可以去乙個使對手到必敗點,而對手在這種情況下在必敗點是不能贏得,所以4是必勝點。但是後面5個石頭的情況就不同了,因為5個石頭 你肯定不會sb的走到4這個必勝點讓對手贏,但是你發現走到...

hdu 2516 斐波那契博弈)

思路 網上大牛說是著名的斐波那契博弈模型 首先 2個石頭肯定是必敗點,3個石頭也是必敗點,然後開始看後面,4個石頭時,可以去乙個使對手到必敗點,而對手在這種情況下在必敗點是不能贏得,所以4是必勝點。但是後面5個石頭的情況就不同了,因為5個石頭 你肯定不會sb的走到4這個必勝點讓對手贏,但是你發現走到...

hdu2516斐波那契博弈

剛開始想用sg函式做,想了半天沒一點思路啊。原來這是乙個新題型,斐波那契博弈 斐波那契博弈模型 有一堆個數為 n 的石子,遊戲雙方輪流取石子,滿足 1.先手不能在第一次把所有的石子取完 2.之後每次可以取的石子數介於1到對手剛取的石子數的2倍之間 包含1和對手剛取的石子數的2倍 約定取走最後乙個石子...