bzoj 2275: [Coci2010]HRPA
据说叫斐波那契博弈。
先手最少取的石子数是把n用斐波那契数列拆分后最小的数。
原题+证明:
http://blog.csdn.net/acm_cxlove/article/details/7835016
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include<bits/stdc++.h> #define ll long long using namespace std; ll n; ll f[100]; int main() { scanf ( "%lld" ,&n); f[0]=f[1]=1; int i; for (i=2;;i++) { f[i]=f[i-1]+f[i-2]; if (f[i]>=n) break ; } for (;;i--) { if (n==f[i]) { printf ( "%lld\n" ,n); return 0; } if (n>f[i])n-=f[i]; } return 0; } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步