【牛客 - 302哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(低年级)】小乐乐吃糖豆 (fIb博弈)
生活随笔
收集整理的這篇文章主要介紹了
【牛客 - 302哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(低年级)】小乐乐吃糖豆 (fIb博弈)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題干:
?
?小樂樂是一個比較喜歡吃糖豆的小孩子,小樂樂的哥哥大樂樂也同樣愛吃糖豆。
作為一個小孩子,他們永遠覺得誰吃掉了最后一個糖豆,誰吃的糖豆最多。
為了公平起見小樂樂與大樂樂商量吃糖豆的規(guī)則如下:
1.???? 小樂樂與大樂樂輪流吃糖豆。
2.???? 小樂樂作為弟弟,小樂樂先吃糖豆。
3.???? 小樂樂第一次可以吃任意不超過n 個糖豆。(n為糖豆初始總數(shù))
4.???? 后一個人每次能吃【1,前一個人吃的糖豆*2】
????已知有n個糖豆,小樂樂與大樂樂開始分食糖豆,小樂樂與大樂樂都采用最優(yōu)策略,請問誰能吃到最后一粒糖豆?
輸入描述:
第一行輸入整數(shù)n(2<=n<=1000)。輸出描述:
輸出吃到最后一顆糖豆的人的名字。”Small”(小樂樂)/“Big”(大樂樂)。?
示例1
輸入
復(fù)制
2輸出
復(fù)制
Big說明
小樂樂只能拿1個,大樂樂會吃掉最后一個。示例2
輸入
復(fù)制
4輸出
復(fù)制
Small說明
小樂樂取走一個,大樂樂只能取走【1,2】個,無論大樂樂取走幾個小樂樂都會吃掉最后一個。解題報告:
? ?數(shù)據(jù)水了,,很多人直接放過去了。。其實就是個Fib博弈。
AC代碼:
#include<cstdio> #include<iostream> #include<algorithm> #include<queue> #include<map> #include<vector> #include<set> #include<string> #include<cmath> #include<cstring> #define ll long long #define pb push_back #define pm make_pair #define fi first #define se second using namespace std; const int MAX = 2e5 + 5; int fib[105]; int main() {int n;fib[1]=1;fib[2]=2;for(int i = 3; i<=20; i++) fib[i] = fib[i-1]+fib[i-2];cin>>n;if(binary_search(fib+1,fib+20,n)) puts("Big");else puts("Small");return 0 ;}?
總結(jié)
以上是生活随笔為你收集整理的【牛客 - 302哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(低年级)】小乐乐吃糖豆 (fIb博弈)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【HDU - 3951】Coin Gam
- 下一篇: 苦等将近一年:腾讯《全境封锁2》国服官微