HDU 1848 Fibonacci again and again (尼姆博弈+sg函式)
Fibonacci again and again
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 9062 Accepted Submission(s): 3776
Problem Description
任何一個大學生對菲波那契數列(Fibonacci numbers)應該都不會陌生,它是這樣定義的:
F(1)=1;
F(2)=2;
F(n)=F(n-1)+F(n-2)(n>=3);
所以,1,2,3,5,8,13……就是菲波那契數列。
在HDOJ上有不少相關的題目,比如1005 Fibonacci again就是曾經的浙江省賽題。
今天,又一個關於Fibonacci的題目出現了,它是一個小遊戲,定義如下:
1、 這是一個二人遊戲;
2、 一共有3堆石子,數量分別是m, n, p個;
3、 兩人輪流走;
4、 每走一步可以選擇任意一堆石子,然後取走f個;
5、 f只能是菲波那契數列中的元素(即每次只能取1,2,3,5,8…等數量);
6、 最先取光所有石子的人為勝者;
假設雙方都使用最優策略,請判斷先手的人會贏還是後手的人會贏。
F(1)=1;
F(2)=2;
F(n)=F(n-1)+F(n-2)(n>=3);
所以,1,2,3,5,8,13……就是菲波那契數列。
在HDOJ上有不少相關的題目,比如1005 Fibonacci again就是曾經的浙江省賽題。
今天,又一個關於Fibonacci的題目出現了,它是一個小遊戲,定義如下:
1、 這是一個二人遊戲;
2、 一共有3堆石子,數量分別是m, n, p個;
3、 兩人輪流走;
4、 每走一步可以選擇任意一堆石子,然後取走f個;
5、 f只能是菲波那契數列中的元素(即每次只能取1,2,3,5,8…等數量);
6、 最先取光所有石子的人為勝者;
假設雙方都使用最優策略,請判斷先手的人會贏還是後手的人會贏。
Input
輸入資料包含多個測試用例,每個測試用例佔一行,包含3個整數m,n,p(1<=m,n,p<=1000)。
m=n=p=0則表示輸入結束。
m=n=p=0則表示輸入結束。
Output
如果先手的人能贏,請輸出“Fibo”,否則請輸出“Nacci”,每個例項的輸出佔一行。
Sample Input
1 1 1
1 4 1
0 0 0
Sample Output
Fibo
Nacci
Author
lcy
Source
POINT:
先得出sg[1000],在sg[m] sg[n] sg[p] 異或。
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <math.h>
using namespace std;
#define ll long long
int fibo[30];
int sg[1010];
void init()
{
fibo[1]=1;
fibo[2]=2;
for(int i=3;i<=16;i++)
{
fibo[i]=fibo[i-1]+fibo[i-2];
}
sg[0]=0;
for(int i=1;i<=1000;i++)
{
int flag[1010];
memset(flag,0,sizeof flag);
for(int j=1;i-fibo[j]>=0;j++)
{
flag[sg[i-fibo[j]]]=1;
}
for(int j=0;;j++)
{
if(!flag[j])
{
sg[i]=j;
break;
}
}
}
}
int main()
{
init();
int a,b,c;
while(~scanf("%d %d %d",&a,&b,&c))
{
if(!(a+b+c)) break;
if((sg[a]^sg[b]^sg[c])==0) printf("Nacci\n");
else printf("Fibo\n");
}
}
相關文章
- HDU 1848 Fibonacci again and again(SG函式)AI函式
- 『杭電1848』Fibonacci again and againAI
- NYOJ 480 Fibonacci Again!AI
- HDU 1846-Brave Game(巴什博弈-SG函式)GAM函式
- LightOj1296Again Stone Game(手推SG函式)AIGAM函式
- HDU 2897-邂逅明下(博弈-SG函式打表找規律)函式
- 博弈論進階之SG函式函式
- 博弈學習(一) NIM + SG函式函式
- HDU - 1702 - ACboy needs your help again!AI
- SG 函式初步 HDU 1536 && HDU 1944函式
- HDU 1847-Good Luck in CET-4 Everybody!(博弈-SG函式/找規律)Go函式
- HDU1729 Stone Game (SG函式)GAM函式
- 博弈論基礎之sg函式與nim函式
- hdu 1789 Doing Homework again(簡單貪心)AI
- 【博弈論】組合遊戲及SG函式淺析遊戲函式
- ASSM AgainSSMAI
- ECNU OJ 3354 領外賣(博弈-SG函式)函式
- On MySQL replication, again…MySqlAI
- HDU1788Chinese remainder theorem again(中國剩餘定理 簡單)REMAI
- HDU 5795 A Simple Nim (SG函式+打表找規律)函式
- If I were a boy againAI
- Decade counter againAI
- 藍橋嵌入式之 USART_AgainAI
- HDU 4251-The Famous ICPC Team Again(劃分樹-區間中位數)AI
- Again, a chinese char conversion problemAI
- NIM遊戲/SG函式遊戲函式
- Use of Indexes Against Views (179)IndexAIView
- POJ 2311-Cutting Game(Nim博弈-sg函式/記憶化搜尋)GAM函式
- Please set RAT_ELRACKTYPE and try againAI
- Codeforces 582 B Once Again... (LIS)AI
- ORA-01555 say u againAI
- 璧合在京釋出自助開放式廣告投放平臺AGAINAI
- 博弈論進階之Multi-SG
- 博弈論進階之Every-SG
- What can men do against such reckless hate?AI
- save the status of schema and gather all stat of schemas again.AI
- postfix日誌中出現“Hostnotfound,tryagain”(轉)AI
- LightOJ 1038 Race to 1 Again (簡單期望)AI