hdu 2516 取石子游戲 (博弈論)
方法:
通過找規律可以發現斐波拉契數列為必敗點。
PS: 自己算結果的時候算出了幾次, 後面慢慢算才看出這個規律。。
程式碼:
#include <cstdio> #include <cstring> #include <climits> __int64 F[50]; int main() { __int64 max= INT_MAX; F[1]= 2, F[2]= 3; int tot= 2; while(F[tot]< max) { F[tot+1]= F[tot] + F[tot-1]; tot++; } int n; while(scanf("%d",&n)!=EOF && n) { int f= 1; for(int i= 1; i<= tot; i++) if(F[i]== n) f= 0; if(f) printf("First win\n"); else printf("Second win\n"); } return 0; }
相關推薦
hdu 2516 取石子游戲 (博弈論)
方法: 通過找規律可以發現斐波拉契數列為必敗點。 PS: 自己算結果的時候算出了幾次, 後面慢慢算才看出這個規律。。 程式碼: #include <cstdio> #include <cstring> #include <climits>
HDU 2516 取石子游戲 (博弈論)
取石子游戲 Problem Description 1堆石子有n個,兩人輪流取.先取者第1次可以取任意多個,但不能全部取完.以後每次取的石子數不能超過上次取子數的2倍。取完者勝.先取者負輸出"
HDU 2516取石子游戲(巴什博弈)
取石子游戲 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4093 Accepted S
HDU 2516 取石子游戲 Fib博弈
取石子游戲 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2344 Accepted Submission(s): 1341 Probl
hdu 2516 取石子游戲(water)
好吧,好水的! 連公式也是某位大神賜給小弟的! ~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
HDU 2516 取石子游戲 [斐波那契博弈]
博弈問題 巴士博弈 威爾夫博弈 斐波那契博弈 尼姆博弈 HDUXXX<-點選此處進入連結 公平組合博弈 取石子游戲 Time Limit: 2000/1000 MS (Java/Others)
hdu 2516 取石子游戲(組合遊戲)
題目大意:略。 解題思路:K倍動態減法,K=2的情況為斐波那契數列。 #include <cstdio> #include <cstring> #include <
HDU 2516 取石子游戲(斐波那契博弈)
當且只當n是一個斐波那契數的時候是必敗態。可以寫出幾組資料找規律就可以發現這個規律。 證明如下: 就像“Wythoff博弈”需要“Beatty定理”來幫忙一樣,這裡需要藉助“Zeckendorf定理
HDU 2516 取石子游戲 (斐波那契博弈)
大神部落格:http://blog.csdn.net/acm_cxlove/article/details/7835016 #include <iostream> #include <cstdio> #include <cstring>
hdu 2516 取石子游戲(博弈)
只要列舉一下前面十幾組資料的勝負手,就可以很明顯地看出來只有菲薄數是先手輸,其他都是先手贏。 #include<stdio.h> #include<string.h> typ
HDU 2516 取石子游戲(Fibonacci博弈)
問題描述 取石子游戲 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 8263 Accepted S
HDU 2516 取石子游戲(巴什博弈)
取石子游戲 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su
【HDU】取石子游戲 威佐夫博弈
取石子游戲 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm
HDU-1527-取石子游戲【威佐夫博弈】
HDU-1527-取石子游戲 Problem Description 有兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子。遊戲規定,每次有兩種不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在兩堆中同時取走相同數量的石子。最後
HDU 1527 取石子游戲 威佐夫博弈
題意:中文 思路:威佐夫博弈 必敗態為 (a,b ) ai + i = bi ai = i*(1+sqrt(5.0)+1)/2 這題就求出i然後帶人i和i+1判斷是否成立 以下轉自網上某總結 有公式ak =[k(1+√5)/2],bk= ak + k (k=
hdu 1527 取石子游戲---威佐夫博弈
取石子游戲 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 1 Accepted Submission(
Hdu 1527 取石子游戲 (威佐夫博弈)
有兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子。遊戲規定,每次有兩種不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在兩堆中同時取走相同數量的石子。最後把石子全部取完者為勝者。現在給出初始的兩堆石子的數目,如果輪到你先取,假設雙方都採取最好的策略,
2516 取石子游戲(斐波那契)
題目: Description 1堆石子有n個,兩人輪流取.先取者第1次可以取任意多個,但不能全部取完.以後每次取的石子數不能超過上次取子數的2倍。取完者勝.先取者負輸出"Second win
HDOJ 2516 取石子游戲
取石子游戲 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3701 Accepted Submissi
openjudge 6266取石子游戲 博弈論 c++
描述 有兩堆石子,兩個人輪流去取.每次取的時候,只能從較多的那堆石子裡取,並且取的數目必須是較少的那堆石子數目的整數倍.最後誰能夠把一堆石子取空誰就算贏. 比如初始的時候兩堆石子的數目是25和7 25 7 –> 11 7 –>