1. 程式人生 > >HDOJ 2516 取石子游戲

HDOJ 2516 取石子游戲

取石子游戲

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3701    Accepted Submission(s): 2192


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 13 10000 0
Sample Output Second win Second win First win
Source
Recommend lcy   |   We have carefully selected several similar problems for you:  
2509
 2512 1536 2510 1907 
被坑爹隊友稱為小學奧數題……然而我好像並沒有小學的水準[email protected]#$^&*(¥&…*#$^(*_

看了題解後寫的(……我沒想出來)

這個和斐波那契數有關,好像是比較常見的一種型別。

#include<stdio.h>
int a[50];
void Fib()
{
	int i,j;
	a[0]=2,a[1]=3;
	for(i=2;i<=45;i++)
		a[i]=a[i-1]+a[i-2];
}
int main()
{
	Fib();
	int n,i;
	while(scanf("%d",&n)&&n)
	{
		for(i=0;i<=45;i++)
		{
			if(a[i]==n)
				break;
		}
		if(i>45)
			printf("First win\n");
		else
			printf("Second win\n");
	}
	return 0;
}


相關推薦

HDOJ 2516 石子

取石子游戲 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3701    Accepted Submissi

2516 石子(斐波那契)

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

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 石子 (博弈論)

方法: 通過找規律可以發現斐波拉契數列為必敗點。 PS: 自己算結果的時候算出了幾次, 後面慢慢算才看出這個規律。。 程式碼: #include <cstdio> #include <cstring> #include <climits>

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 石子 (博弈論)

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

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 2516 )

分析: 遊戲規則: ① 先手不能一次取完所有石子 ② 之和每次可以取得的石子數在1~上次對方取的石子數的兩倍之間(閉區間) ③先取完的獲勝 題解: 通過數學歸納法找規律,得出必敗數。 過

hdoj 2516 石子遊戲(Fib公式)

amp ++ cond output col size des sample == Problem Description 1堆石子有n個,兩人輪流取.先取者第1次可以取任意多個,但不能全部取完.以後每次取的石子數不能超過上次取子數的2倍。取完者勝.先取者負輸出"Secon

[BeiJing2009 WinterCamp]石子 Nim SG 函式

Code: #include<cstdio> #include<algorithm> #include<cstring> using namespace std; #define maxn 1003 int arr[13],step[13],SG[maxn]; bo

洛谷P2599||bzoj1413 [ZJOI2009]石子

bzoj1413 洛谷P2599 根本不會啊。。。 看題解吧 1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring> 4 #include<vector>

【洛谷P2252】石子

題面 題解 威佐夫博弈 程式碼 #include<cstdio> #include<algorithm> #include<cmath> #define RG register const double Phi((sqrt(5) + 1.) / 2.); int

【BZOJ1874】石子(SG函式)

題意:小H和小Z正在玩一個取石子游戲。 取石子游戲的規則是這樣的,每個人每次可以從一堆石子中取出若干個石子, 每次取石子的個數有限制,誰不能取石子時就會輸掉遊戲。 小H先進行操作, 他想問你他是否有必勝策略,如果有,第一步如何取石子 n<=10,a[i]<=1000,m<=10,b[i